Imported Upstream version 4.4.1 upstream/4.4.1
authorJinWang An <jinwang.an@samsung.com>
Wed, 30 Dec 2020 01:17:06 +0000 (10:17 +0900)
committerJinWang An <jinwang.an@samsung.com>
Wed, 30 Dec 2020 01:17:06 +0000 (10:17 +0900)
456 files changed:
CHANGES.txt
MANIFEST.in
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.ElementInclude.LimitedRecursiveIncludeError-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.C14NWriterTarget-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.htmlfile-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.Classes-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.soupparser._PseudoTag-class.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.common_imports.skipif-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.selftest-module.html
doc/html/api/lxml.tests.selftest-pysrc.html
doc/html/api/lxml.tests.selftest2-module.html
doc/html/api/lxml.tests.selftest2-pysrc.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_elementpath-module.html
doc/html/api/lxml.tests.test_elementpath-pysrc.html
doc/html/api/lxml.tests.test_elementpath.EtreeElementPathTestCase-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.CElementTreeElementSlicingTest-class.html
doc/html/api/lxml.tests.test_elementtree.CElementTreeTestCase-class.html
doc/html/api/lxml.tests.test_elementtree.ETreeC14N2TostringTest-class.html
doc/html/api/lxml.tests.test_elementtree.ETreeC14N2WriteTest-class.html
doc/html/api/lxml.tests.test_elementtree.ETreeC14NTest-class.html
doc/html/api/lxml.tests.test_elementtree.ETreeElementSlicingTest-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.ElementTreeElementSlicingTest-class.html
doc/html/api/lxml.tests.test_elementtree.ElementTreeTestCase-class.html
doc/html/api/lxml.tests.test_elementtree._C14NTest-class.html
doc/html/api/lxml.tests.test_elementtree._ETreeTestCaseBase-class.html
doc/html/api/lxml.tests.test_elementtree._ElementSlicingTest-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_external_document-module.html
doc/html/api/lxml.tests.test_external_document-pysrc.html
doc/html/api/lxml.tests.test_external_document.ExternalDocumentTestCase-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.AsyncXmlFileTestCase-class.html
doc/html/api/lxml.tests.test_incremental_xmlfile.BytesIOXmlFileTestCase-class.html
doc/html/api/lxml.tests.test_incremental_xmlfile.HtmlFileTestCase-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.TempPathXmlFileTestCase-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_relaxng.RelaxNGCompactTestCase-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_sax.NSPrefixSaxTestCase-class.html
doc/html/api/lxml.tests.test_sax.SimpleContentHandler-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.ParseAndInjectWorker-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.Validate-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.EncodingsTestCase-class.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-4.4.1.html [moved from doc/html/changes-4.4.0.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
setup.py
src/lxml.egg-info/PKG-INFO
src/lxml.egg-info/SOURCES.txt
src/lxml/apihelpers.pxi
src/lxml/etree.c
src/lxml/html/_diffcommand.py
src/lxml/includes/lxml-version.h
src/lxml/tests/c14n-20/world.txt [new file with mode: 0644]
src/lxml/tests/test_etree.py
version.txt

index 5231f99..dc9f33a 100644 (file)
@@ -2,6 +2,18 @@
 lxml changelog
 ==============
 
+4.4.1 (2019-08-11)
+==================
+
+Bugs fixed
+----------
+
+* LP#1838252: The order of an OrderedDict was lost in 4.4.0 when passing it as
+  attrib mapping during element creation.
+
+* LP#1838521: The package metadata now lists the supported Python versions.
+
+
 4.4.0 (2019-07-27)
 ==================
 
index 73db322..529fa04 100644 (file)
@@ -9,7 +9,7 @@ include src/lxml/*.c src/lxml/html/*.c
 recursive-include src *.pyx *.pxd *.pxi *.py
 recursive-include src/lxml lxml.etree.h lxml.etree_api.h etree.h etree_api.h etree_defs.h lxml_endian.h
 recursive-include src/lxml/isoschematron *.rng *.xsl *.txt
-recursive-include src/lxml/tests *.rng *.rnc *.xslt *.xml *.dtd *.xsd *.sch *.html
+recursive-include src/lxml/tests *.rng *.rnc *.xslt *.xml *.dtd *.xsd *.sch *.html *.txt
 recursive-include src/lxml/html/tests *.data *.txt
 recursive-include samples *.xml
 recursive-include benchmark *.py
index 3c28354..32ab494 100644 (file)
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: lxml
-Version: 4.4.0
+Version: 4.4.1
 Summary: Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API.
 Home-page: http://lxml.de/
 Author: lxml dev team
@@ -38,90 +38,16 @@ 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.
         
-        4.4.0 (2019-07-27)
+        4.4.1 (2019-08-11)
         ==================
         
-        Features added
-        --------------
-        
-        * ``Element.clear()`` accepts a new keyword argument ``keep_tail=True`` to
-          clear everything but the tail text.  This is helpful in some document-style
-          use cases.
-        
-        * When creating attributes or namespaces from a dict in Python 3.6+, lxml now
-          preserves the original insertion order of that dict, instead of always sorting
-          the items by name.  A similar change was made for ElementTree in CPython 3.8.
-          See https://bugs.python.org/issue34160
-        
-        * Integer elements in ``lxml.objectify`` implement the ``__index__()`` special method.
-        
-        * GH#269: Read-only elements in XSLT were missing the ``nsmap`` property.
-          Original patch by Jan Pazdziora.
-        
-        * ElementInclude can now restrict the maximum inclusion depth via a ``max_depth``
-          argument to prevent content explosion.  It is limited to 6 by default.
-        
-        * The ``target`` object of the XMLParser can have ``start_ns()`` and ``end_ns()``
-          callback methods to listen to namespace declarations.
-        
-        * The ``TreeBuilder`` has new arguments ``comment_factory`` and ``pi_factory`` to
-          pass factories for creating comments and processing instructions, as well as
-          flag arguments ``insert_comments`` and ``insert_pis`` to discard them from the
-          tree when set to false.
-        
-        * A `C14N 2.0 <https://www.w3.org/TR/xml-c14n2/>`_ implementation was added as
-          ``etree.canonicalize()``, a corresponding ``C14NWriterTarget`` class, and
-          a ``c14n2`` serialisation method.
-        
         Bugs fixed
         ----------
         
-        * When writing to file paths that contain the URL escape character '%', the file
-          path could wrongly be mangled by URL unescaping and thus write to a different
-          file or directory.  Code that writes to file paths that are provided by untrusted
-          sources, but that must work with previous versions of lxml, should best either
-          reject paths that contain '%' characters, or otherwise make sure that the path
-          does not contain maliciously injected '%XX' URL hex escapes for paths like '../'.
-        
-        * Assigning to Element child slices with negative step could insert the slice at
-          the wrong position, starting too far on the left.
-        
-        * Assigning to Element child slices with overly large step size could take very
-          long, regardless of the length of the actual slice.
-        
-        * Assigning to Element child slices of the wrong size could sometimes fail to
-          raise a ValueError (like a list assignment would) and instead assign outside
-          of the original slice bounds or leave parts of it unreplaced.
-        
-        * The ``comment`` and ``pi`` events in ``iterwalk()`` were never triggered, and
-          instead, comments and processing instructions in the tree were reported as
-          ``start`` elements.  Also, when walking an ElementTree (as opposed to its root
-          element), comments and PIs outside of the root element are now reported.
-        
-        * LP#1827833: The RelaxNG compact syntax support was broken with recent versions
-          of ``rnc2rng``.
-        
-        * LP#1758553: The HTML elements ``source`` and ``track`` were added to the list
-          of empty tags in ``lxml.html.defs``.
-        
-        * Registering a prefix other than "xml" for the XML namespace is now rejected.
-        
-        * Failing to write XSLT output to a file could raise a misleading exception.
-          It now raises ``IOError``.
-        
-        Other changes
-        -------------
-        
-        * Support for Python 3.4 was removed.
-        
-        * When using ``Element.find*()`` with prefix-namespace mappings, the empty string
-          is now accepted to define a default namespace, in addition to the previously
-          supported ``None`` prefix.  Empty strings are more convenient since they keep
-          all prefix keys in a namespace dict strings, which simplifies sorting etc.
+        * LP#1838252: The order of an OrderedDict was lost in 4.4.0 when passing it as
+          attrib mapping during element creation.
         
-        * The ``ElementTree.write_c14n()`` method has been deprecated in favour of the
-          long preferred ``ElementTree.write(f, method="c14n")``.  It will be removed
-          in a future release.
+        * LP#1838521: The package metadata now lists the supported Python versions.
         
         
         
@@ -134,7 +60,6 @@ Classifier: Programming Language :: Cython
 Classifier: Programming Language :: Python :: 2
 Classifier: Programming Language :: Python :: 2.7
 Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.4
 Classifier: Programming Language :: Python :: 3.5
 Classifier: Programming Language :: Python :: 3.6
 Classifier: Programming Language :: Python :: 3.7
@@ -143,6 +68,7 @@ Classifier: Operating System :: OS Independent
 Classifier: Topic :: Text Processing :: Markup :: HTML
 Classifier: Topic :: Text Processing :: Markup :: XML
 Classifier: Topic :: Software Development :: Libraries :: Python Modules
+Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, != 3.4.*
 Provides-Extra: cssselect
 Provides-Extra: html5
 Provides-Extra: htmlsoup
index 9cb4a7d..2761c7c 100644 (file)
@@ -45,7 +45,7 @@ fast Python XML processing.
             :height: 47
             :alt: Donate to the lxml project
 
-.. _`doc/main.txt`: http://lxml.de/
+.. _`doc/main.txt`: https://github.com/lxml/lxml/blob/master/doc/main.txt
 .. _`INSTALL.txt`: http://lxml.de/installation.html
 
 `Travis-CI <https://travis-ci.org/>`_ and `AppVeyor <https://www.appveyor.com/>`_
index 2a93cec..b08d79e 100644 (file)
@@ -26,7 +26,7 @@ function hide_menu() {
 </script><meta content="width=device-width, initial-scale=1" name="viewport" /></head>
 <body onclick="hide_menu()">
 <div class="document" id="lxml-faq-frequently-asked-questions">
-<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><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#where-to-get-it">Where to get it</a></li><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-dev-sources">Building lxml from dev 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#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on 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></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#passing-generated-trees-through-python">Passing generated trees through Python</a></li><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 4 4 0-menu"><li class="menu title"><a href="changes-4.4.0.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="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">lxml FAQ - Frequently Asked Questions</h1>
+<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><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#where-to-get-it">Where to get it</a></li><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-dev-sources">Building lxml from dev 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#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on 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></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#passing-generated-trees-through-python">Passing generated trees through Python</a></li><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 4 4 1-menu"><li class="menu title"><a href="changes-4.4.1.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="/sitemap.html">Sitemap</a></li></ul></div></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>
@@ -1021,7 +1021,7 @@ map it to your namespace.  See also the question above.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2019-07-27.
+Generated on: 2019-08-11.
 
 </div>
 </body>
index 3217686..6e2ef37 100644 (file)
@@ -24,7 +24,7 @@ function hide_menu() {
 </script><meta content="width=device-width, initial-scale=1" name="viewport" /></head>
 <body onclick="hide_menu()">
 <div class="document" id="apis-specific-to-lxml-etree">
-<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><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#where-to-get-it">Where to get it</a></li><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-dev-sources">Building lxml from dev 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#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on 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></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#passing-generated-trees-through-python">Passing generated trees through Python</a></li><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 4 4 0-menu"><li class="menu title"><a href="changes-4.4.0.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="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">APIs specific to lxml.etree</h1>
+<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><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#where-to-get-it">Where to get it</a></li><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-dev-sources">Building lxml from dev 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#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on 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></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#passing-generated-trees-through-python">Passing generated trees through Python</a></li><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 4 4 1-menu"><li class="menu title"><a href="changes-4.4.1.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="/sitemap.html">Sitemap</a></li></ul></div></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
@@ -540,7 +540,7 @@ resolvers, you have to stick to the external Python module.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2019-07-27.
+Generated on: 2019-08-11.
 
 </div>
 </body>
index e7b3014..9504185 100644 (file)
@@ -427,7 +427,7 @@ even via super()).</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 200dd55..392349f 100644 (file)
@@ -593,13 +593,13 @@ lxml.tests.test_etree     lxml.tests.test_etree-module.html
 lxml.tests.test_etree.tmpfile  lxml.tests.common_imports-module.html#tmpfile
 lxml.tests.test_etree.make_doctest     lxml.tests.common_imports-module.html#make_doctest
 lxml.tests.test_etree._str     lxml.tests.common_imports-module.html#_str
+lxml.tests.test_etree.fileInTestDir    lxml.tests.common_imports-module.html#fileInTestDir
 lxml.tests.test_etree._bytes   lxml.tests.common_imports-module.html#_bytes
 lxml.tests.test_etree.canonicalize     lxml.tests.common_imports-module.html#canonicalize
 lxml.tests.test_etree.__package__      lxml.tests.test_etree-module.html#__package__
 lxml.tests.test_etree.fileUrlInTestDir lxml.tests.common_imports-module.html#fileUrlInTestDir
 lxml.tests.test_etree.path2url lxml.tests.common_imports-module.html#path2url
 lxml.tests.test_etree.read_file        lxml.tests.common_imports-module.html#read_file
-lxml.tests.test_etree.fileInTestDir    lxml.tests.common_imports-module.html#fileInTestDir
 lxml.tests.test_etree.test_suite       lxml.tests.test_etree-module.html#test_suite
 lxml.tests.test_external_document      lxml.tests.test_external_document-module.html
 lxml.tests.test_external_document.__package__  lxml.tests.test_external_document-module.html#__package__
index f5f0be0..4e813ad 100644 (file)
@@ -1373,7 +1373,7 @@ type(name, bases, dict) -&gt; a new type</em>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index fdd96fb..ef37e74 100644 (file)
@@ -195,7 +195,7 @@ You can just use ``except SelectorError:`` when calling
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ea095f3..b5befda 100644 (file)
@@ -202,7 +202,7 @@ Parsing a selector that does not match the grammar.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 956f83f..cb3eac8 100644 (file)
@@ -194,7 +194,7 @@ Unknown or unsupported selector (eg. pseudo-class).
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7aefc32..218f0a7 100644 (file)
@@ -380,7 +380,7 @@ to a single parent.</td>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 436d472..9365009 100644 (file)
@@ -146,7 +146,7 @@ with older versions of lxml or ElementTree.</li>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e950fe8..99c1e2a 100644 (file)
@@ -281,7 +281,7 @@ Assertion failed.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a02f9a4..51b4677 100644 (file)
@@ -257,7 +257,7 @@ page was last updated. </p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 73375cf..22cb1f9 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b6f89e7..01cb87b 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index adcc30d..5ee7b58 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a44b747..50957d1 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d3def29..9901559 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c0e4e35..bc5fdb2 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c1d3f41..d4f5b14 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2ba6777..d4239f9 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9102334..b20af82 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3b95dcb..0224be4 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 58d1d06..c29ce32 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d2a1cee..dc691bb 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index cb223d5..ba85665 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index cdfaf28..5ac2d58 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f760b73..e4779d8 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 33f9f06..979f3f5 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9ce245d..3f48856 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index eb5806c..ffb9e12 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 06b0e30..9526443 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ec463f9..ca8c634 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 16dd8b5..204ac7b 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 1894228..942d197 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 180f620..d1af91a 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9249bdd..3db17d2 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index aa8afc9..bec5f57 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6ed33e4..cd1443d 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 77fcdfd..da2db96 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 34039d6..fd62e09 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2d6b23f..cbe0921 100644 (file)
@@ -239,7 +239,7 @@ with statically linked libraries.</td>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6d2a4d6..5f6eb61 100644 (file)
@@ -130,7 +130,7 @@ expandto(location.href);
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2625b04..21e0cdf 100644 (file)
@@ -301,7 +301,7 @@ form of custom URL resolvers.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9bb70ac..537c9e2 100644 (file)
@@ -588,7 +588,7 @@ expandto(location.href);
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 07c61bb..f9b4bd8 100644 (file)
@@ -236,7 +236,7 @@ exceptions.BaseException --+           |
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index fa31211..ed4e3ad 100644 (file)
@@ -232,7 +232,7 @@ exceptions.BaseException --+           |
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b1ecee3..2c63db5 100644 (file)
@@ -207,8 +207,8 @@ The <tt class="rst-docutils literal">E</tt> Element factory for generating XML d
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a href="lxml.builder-module.html#__pyx_capi__" class="summary-name">__pyx_capi__</a> = <code title="{'ET': &lt;capsule object &quot;PyObject *&quot; at 0x7f32d9a99d20&gt;,
- 'partial': &lt;capsule object &quot;PyObject *&quot; at 0x7f32d9a99d50&gt;}"><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">ET</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;capsule object &quot;PyObject *&quot; at 0x7f32d9<code class="variable-ellipsis">...</code></code>
+        <a href="lxml.builder-module.html#__pyx_capi__" class="summary-name">__pyx_capi__</a> = <code title="{'ET': &lt;capsule object &quot;PyObject *&quot; at 0x7f1f379755d0&gt;,
+ 'partial': &lt;capsule object &quot;PyObject *&quot; at 0x7f1f37975600&gt;}"><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">ET</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;capsule object &quot;PyObject *&quot; at 0x7f1f37<code class="variable-ellipsis">...</code></code>
     </td>
   </tr>
 <tr>
@@ -249,8 +249,8 @@ The <tt class="rst-docutils literal">E</tt> Element factory for generating XML d
   <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">ET</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;capsule object &quot;PyObject *&quot; at 0x7f32d9a99d20&gt;<code class="variable-op">,</code>
- <code class="variable-quote">'</code><code class="variable-string">partial</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;capsule object &quot;PyObject *&quot; at 0x7f32d9a99d50&gt;<code class="variable-group">}</code>
+<code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">ET</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;capsule object &quot;PyObject *&quot; at 0x7f1f379755d0&gt;<code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">partial</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;capsule object &quot;PyObject *&quot; at 0x7f1f37975600&gt;<code class="variable-group">}</code>
 </pre></td></tr></table>
 </dd>
   </dl>
@@ -289,7 +289,7 @@ The <tt class="rst-docutils literal">E</tt> Element factory for generating XML d
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4b904d9..27f974a 100644 (file)
@@ -442,7 +442,7 @@ expandto(location.href);
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2ca9d70..fc67550 100644 (file)
@@ -514,7 +514,7 @@ and/or a specific target <tt class="rst-docutils literal">namespace</tt> to the
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a205c36..789e1ae 100644 (file)
@@ -232,7 +232,7 @@ See the <a href="lxml.cssselect.CSSSelector-class.html" class="link">CSSSelector
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2e34aae..f0f9f25 100644 (file)
@@ -319,7 +319,7 @@ expandto(location.href);
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c55e939..d15a178 100644 (file)
@@ -309,7 +309,7 @@ mapping as <tt class="rst-docutils literal">namespaces</tt> keyword argument:</p
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3a5fa2a..8b198e6 100644 (file)
@@ -312,7 +312,7 @@ lxml extensions + HTML support.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f562672..73b15bb 100644 (file)
@@ -364,7 +364,7 @@ A custom CSS selector to XPath translator with lxml-specific extensions.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 072d369..dd4f4da 100644 (file)
@@ -476,7 +476,7 @@ otherwise the XML parser is used.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ac59c42..0f2de10 100644 (file)
@@ -1166,7 +1166,7 @@ expandto(location.href);
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index abe1eae..f063465 100644 (file)
@@ -230,7 +230,7 @@ doctest.OutputChecker --+
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 49a3a8e..436d779 100644 (file)
@@ -611,7 +611,7 @@ to compare <code class="link">want</code> and <code class="link">got</code>.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6aa1d16..b7f9132 100644 (file)
@@ -350,7 +350,7 @@ object --+
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a532859..4bcf36b 100644 (file)
@@ -65,7 +65,7 @@ The <tt class="rst-docutils literal">lxml.etree</tt> module implements the exten
 
 <hr />
 <div class="fields">      <p><strong>Version:</strong>
-        4.4.0
+        4.4.1
       </p>
 </div><!-- ==================== CLASSES ==================== -->
 <a name="section-Classes"></a>
@@ -1752,7 +1752,7 @@ standard Python logging package.</td>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="LXML_VERSION"></a><span class="summary-name">LXML_VERSION</span> = <code title="(4, 4, 0, 0)"><code class="variable-group">(</code>4<code class="variable-op">, </code>4<code class="variable-op">, </code>0<code class="variable-op">, </code>0<code class="variable-group">)</code></code>
+        <a name="LXML_VERSION"></a><span class="summary-name">LXML_VERSION</span> = <code title="(4, 4, 1, 0)"><code class="variable-group">(</code>4<code class="variable-op">, </code>4<code class="variable-op">, </code>1<code class="variable-op">, </code>0<code class="variable-group">)</code></code>
     </td>
   </tr>
 <tr class="private">
@@ -1768,13 +1768,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="{'adoptExternalDocument': &lt;capsule object &quot;struct LxmlElementTree *(xm\
-lDoc *, PyObject *, int)&quot; at 0x7f32dddb9030&gt;,
+lDoc *, PyObject *, int)&quot; at 0x7f1f3c2f5210&gt;,
  'appendChild': &lt;capsule object &quot;void (struct LxmlElement *, struct Lx\
-mlElement *)&quot; at 0x7f32dddb9810&gt;,
+mlElement *)&quot; at 0x7f1f3c2f59f0&gt;,
  'appendChildToElement': &lt;capsule object &quot;int (struct LxmlElement *, s\
-truct LxmlElement *)&quot; at 0x7f32dddb9840&gt;,
+truct LxmlElement *)&quot; at 0x7f1f3c2f5a20&gt;,
  'attributeValue': &lt;capsule object &quot;PyObject *(xmlNode *, xmlAttr *)&quot; \
-at 0x7f32dddb94e0&gt;,
+at 0x7f1f3c2f56c0&gt;,
 ..."><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">adoptExternalDocument</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;capsule object &quot;stru<code class="variable-ellipsis">...</code></code>
     </td>
   </tr>
@@ -2562,13 +2562,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">adoptExternalDocument</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;capsule object &quot;struct LxmlElementTree *(xm<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-lDoc *, PyObject *, int)&quot; at 0x7f32dddb9030&gt;<code class="variable-op">,</code>
+lDoc *, PyObject *, int)&quot; at 0x7f1f3c2f5210&gt;<code class="variable-op">,</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 0x7f32dddb9810&gt;<code class="variable-op">,</code>
+mlElement *)&quot; at 0x7f1f3c2f59f0&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 0x7f32dddb9840&gt;<code class="variable-op">,</code>
+truct LxmlElement *)&quot; at 0x7f1f3c2f5a20&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 0x7f32dddb94e0&gt;<code class="variable-op">,</code>
+at 0x7f1f3c2f56c0&gt;<code class="variable-op">,</code>
 <code class="variable-ellipsis">...</code>
 </pre></td></tr></table>
 </dd>
@@ -2634,7 +2634,7 @@ at 0x7f32dddb94e0&gt;<code class="variable-op">,</code>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ec89861..7efd33d 100644 (file)
@@ -234,7 +234,7 @@ Iterates over the ancestors of an element (from parent to parent).
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c83d579..1c163c4 100644 (file)
@@ -294,7 +294,7 @@ missing.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 0546de0..70b4e45 100644 (file)
@@ -246,7 +246,7 @@ Error during C14N serialisation.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 616d726..2d4074b 100644 (file)
@@ -412,7 +412,7 @@ object --+
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 758f390..0ceffb8 100644 (file)
@@ -237,7 +237,7 @@ a string
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4b960c8..34b7801 100644 (file)
@@ -350,7 +350,7 @@ called after object creation.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 496f087..76f1866 100644 (file)
@@ -273,7 +273,7 @@ lookup(self, type, doc, namespace, name)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7716c52..188a50b 100644 (file)
@@ -412,7 +412,7 @@ catalog.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 35d7cfb..75a7856 100644 (file)
@@ -252,7 +252,7 @@ Base class for DTD errors.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6654fa4..2e0856a 100644 (file)
@@ -248,7 +248,7 @@ Error while parsing a DTD.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e3d84f9..c75b7c1 100644 (file)
@@ -248,7 +248,7 @@ Error while validating an XML document with a DTD.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a312929..0867be6 100644 (file)
@@ -373,7 +373,7 @@ exist, setting this variable (even to None) will create one.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 1f0405e..86675f7 100644 (file)
@@ -248,7 +248,7 @@ method fails.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 19b3d64..af0d3d6 100644 (file)
@@ -326,7 +326,7 @@ and thus ignores comments and processing instructions.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7947d01..ba3d475 100644 (file)
@@ -294,7 +294,7 @@ you pass <tt class="rst-docutils literal">smart_strings=False</tt>.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e978471..e6cfc95 100644 (file)
@@ -363,7 +363,7 @@ hierarchies that implement a common namespace.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 41c73c0..7468305 100644 (file)
@@ -234,7 +234,7 @@ Iterates over the children of an element.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a3eebef..dc755f8 100644 (file)
@@ -233,7 +233,7 @@ Superclass of Element class lookups.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b051180..d6e5fa2 100644 (file)
@@ -307,7 +307,7 @@ accept the respective Element classes.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a766cc8..30cef18 100644 (file)
@@ -288,7 +288,7 @@ tree it traverses is modified during iteration.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 63c31dc..2412aeb 100644 (file)
@@ -332,7 +332,7 @@ Pass None for the empty namespace.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d6c9048..ee448a6 100644 (file)
@@ -280,7 +280,7 @@ tail text (e.g. if you know that it's only whitespace from pretty-printing).</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f795b4d..4efdddb 100644 (file)
@@ -351,7 +351,7 @@ called after object creation.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index eb77b9a..4148fa1 100644 (file)
@@ -246,7 +246,7 @@ exceptions.BaseException --+
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b8ac162..245cb99 100644 (file)
@@ -486,7 +486,7 @@ Libxml2 error domains
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c5e50df..9481225 100644 (file)
@@ -244,7 +244,7 @@ Libxml2 error levels
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9d007a9..c7aade1 100644 (file)
@@ -5407,7 +5407,7 @@ Libxml2 error types
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 10c1226..13e1b12 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ef89a64..678c830 100644 (file)
@@ -348,7 +348,7 @@ reasons.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 72116d1..cdf1dcc 100644 (file)
@@ -327,7 +327,7 @@ source, you can pass the <tt class="rst-docutils literal">base_url</tt>.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 52f1173..1566891 100644 (file)
@@ -288,7 +288,7 @@ this one.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 01baade..a66556d 100644 (file)
@@ -252,7 +252,7 @@ Base class of lxml registry errors.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 90443c5..fc15744 100644 (file)
@@ -236,7 +236,7 @@ Base class for all syntax errors.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 5deb3f7..c685934 100644 (file)
@@ -248,7 +248,7 @@ Error registering a namespace extension.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 0f7af0a..a9ddec8 100644 (file)
@@ -352,7 +352,7 @@ called after object creation.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 78fa0fd..b12142a 100644 (file)
@@ -341,7 +341,7 @@ exceptions.BaseException --+           |
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8032b43..70cdcfd 100644 (file)
@@ -237,7 +237,7 @@ Element class lookup based on the XML parser.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3493f48..299dd29 100644 (file)
@@ -246,7 +246,7 @@ Internal lxml parser error.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8afa74c..125f165 100644 (file)
@@ -434,7 +434,7 @@ format.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index bf0b358..c30089e 100644 (file)
@@ -290,7 +290,7 @@ iteration methods).</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 09f36a2..7841442 100644 (file)
@@ -488,7 +488,7 @@ their text content.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2255703..9b7de94 100644 (file)
@@ -384,7 +384,7 @@ will enable resolving resource references relative to the source.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a8429ef..71ad624 100644 (file)
@@ -252,7 +252,7 @@ Base class for RelaxNG errors.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e43e2ee..5b0b811 100644 (file)
@@ -549,7 +549,7 @@ Libxml2 RelaxNG error types
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index bf36705..de30a34 100644 (file)
@@ -248,7 +248,7 @@ Error while parsing an XML document as RelaxNG.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6f700e4..f75da94 100644 (file)
@@ -248,7 +248,7 @@ Error while validating an XML document with a RelaxNG schema.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4991e2b..a0d68f3 100644 (file)
@@ -455,7 +455,7 @@ argument.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ed3ed60..df64a85 100644 (file)
@@ -367,7 +367,7 @@ errors in lxml.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a732171..a9ab910 100644 (file)
@@ -252,7 +252,7 @@ Base class of all Schematron errors.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 841bc0d..0b9f793 100644 (file)
@@ -248,7 +248,7 @@ Error while parsing an XML document as Schematron schema.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index fd8d808..33122a9 100644 (file)
@@ -248,7 +248,7 @@ Error while validating an XML document with a Schematron schema.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 107f6b4..0f7b2ee 100644 (file)
@@ -252,7 +252,7 @@ A libxml2 error that occurred during serialisation.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 15b5297..e010dcc 100644 (file)
@@ -235,7 +235,7 @@ Iterates over the siblings of an element.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f2e1152..d8f6cab 100644 (file)
@@ -403,7 +403,7 @@ and returns it.</td>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 59f89a7..2732f38 100644 (file)
@@ -292,7 +292,7 @@ processing.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 48e2795..8d0eab6 100644 (file)
@@ -246,7 +246,7 @@ Error during XInclude processing.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 682d4f7..d63c0b6 100644 (file)
@@ -369,7 +369,7 @@ apply to the default parser.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ed08b8e..7195116 100644 (file)
@@ -325,7 +325,7 @@ source, you can pass the <tt class="rst-docutils literal">base_url</tt>.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 47cabcc..28e8b33 100644 (file)
@@ -328,7 +328,7 @@ schema insert default/fixed attributes into validated documents.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f7081d8..7f3e7b5 100644 (file)
@@ -252,7 +252,7 @@ Base class of all XML Schema errors
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 79797d7..faecfbb 100644 (file)
@@ -248,7 +248,7 @@ Error while parsing an XML document as XML Schema.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 27ca0e3..d47115c 100644 (file)
@@ -248,7 +248,7 @@ Error while validating an XML document with an XML Schema.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 88ba959..be23090 100644 (file)
@@ -239,7 +239,7 @@ Syntax error while parsing an XML document.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c297faa..48d1939 100644 (file)
@@ -362,7 +362,7 @@ returned for string results unless you pass
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8591adf..f37e147 100644 (file)
@@ -341,7 +341,7 @@ are currently not supported for variables.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 123f599..8b772e3 100644 (file)
@@ -376,7 +376,7 @@ against the ElementTree as returned by getroottree().</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 20ca531..92ffa25 100644 (file)
@@ -252,7 +252,7 @@ Base class of all XPath errors.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 493f470..3405017 100644 (file)
@@ -254,7 +254,7 @@ Error during XPath evaluation.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 18f2c36..2f3e95d 100644 (file)
@@ -250,7 +250,7 @@ Internal error looking up an XPath extension function.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index fc96fbd..9fb2dbb 100644 (file)
@@ -250,7 +250,7 @@ Error handling an XPath result.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a2e49e1..6a0a563 100644 (file)
@@ -244,7 +244,7 @@ exceptions.BaseException --+               |
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 1b66a13..7d4eb36 100644 (file)
@@ -576,7 +576,7 @@ result = transform(doc, some_strval = XSLT.strparam(
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6ca4958..c36f018 100644 (file)
@@ -429,7 +429,7 @@ XSLTAccessControl(create_dir=False, read_file=True, read_network=True,<span clas
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4dc9172..893de65 100644 (file)
@@ -248,7 +248,7 @@ Error running an XSL transformation.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c9ddecf..23d77dc 100644 (file)
@@ -252,7 +252,7 @@ Base class of all XSLT errors.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index eb9b2be..952bfb3 100644 (file)
@@ -398,7 +398,7 @@ case.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 776b4f3..f7d5290 100644 (file)
@@ -248,7 +248,7 @@ Error registering an XSLT extension.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 666bdc0..73098aa 100644 (file)
@@ -248,7 +248,7 @@ Error parsing a stylesheet document.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 196f0d1..c1e0bce 100644 (file)
@@ -226,7 +226,7 @@ Error serialising an XSLT result.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9915a69..9155b21 100644 (file)
@@ -705,7 +705,7 @@ A dict-like proxy for the <tt class="rst-docutils literal">Element.attrib</tt> p
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b6a72bc..9884470 100644 (file)
@@ -347,7 +347,7 @@ object --+
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 806cdd0..751af98 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index fb159e1..184905e 100644 (file)
@@ -228,7 +228,7 @@ document is cleaned up.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9a8f951..f8052e2 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9eda101..6ae892b 100644 (file)
@@ -1666,7 +1666,7 @@ parents.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d36936e..93f45c2 100644 (file)
@@ -277,7 +277,7 @@ Dead but public. :)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 93b3269..e79e4dc 100644 (file)
@@ -279,7 +279,7 @@ object --+
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 560b1d5..ad164d9 100644 (file)
@@ -268,7 +268,7 @@ basestring --+
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 539f2d6..b2e7555 100644 (file)
@@ -232,7 +232,7 @@ Dead but public. :)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 883a2a1..69ad7b0 100644 (file)
@@ -1086,7 +1086,7 @@ class directly.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4635bb3..7ef5fbd 100644 (file)
@@ -334,7 +334,7 @@ basestring --+
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 444f305..051f2a0 100644 (file)
@@ -357,7 +357,7 @@ the value None, if there was no text.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 05e6ccd..7eba58a 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d0c7975..07a43e5 100644 (file)
@@ -378,7 +378,7 @@ different from what the <tt class="rst-docutils literal">error_log</tt> property
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8662bbe..c057673 100644 (file)
@@ -483,7 +483,7 @@ that were created or modified 'by hand' are not supported.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 0e102be..9a49ecb 100644 (file)
@@ -571,7 +571,7 @@ entries.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 15c0755..5a60c23 100644 (file)
@@ -359,7 +359,7 @@ object --+
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 53ce779..219833d 100644 (file)
@@ -409,7 +409,7 @@ It is not guaranteed to work for all possible text content.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 1a9afe3..27abd5e 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 21363dd..f5c4445 100644 (file)
@@ -230,7 +230,7 @@ object --+
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f67f705..c402dfd 100644 (file)
@@ -263,7 +263,7 @@ exceptions.BaseException --+
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 89bd04f..aa4268b 100644 (file)
@@ -347,7 +347,7 @@ Base class for XML validators.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4a47b6e..4a4709d 100644 (file)
@@ -323,7 +323,7 @@ are currently not supported for variables.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 12ca419..9b118a9 100644 (file)
@@ -391,7 +391,7 @@ the processing instruction.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 0d0dd3a..ab32bdc 100644 (file)
@@ -360,7 +360,7 @@ the result as defined by the <tt class="rst-docutils literal">&lt;xsl:output&gt;
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4d251f8..0cc3a12 100644 (file)
@@ -285,7 +285,7 @@ xmlfile.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3ca8120..8283f9b 100644 (file)
@@ -489,7 +489,7 @@ attribute default values are requested.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 52da1f3..cfe9bc1 100644 (file)
@@ -370,7 +370,7 @@ Instead, the next returned event will be the 'end' event of the current element
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 06766d1..8aa1a22 100644 (file)
@@ -375,7 +375,7 @@ explicitly flush any pending output when buffering is enabled.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 1df1acd..b8e4788 100644 (file)
@@ -1322,7 +1322,7 @@ descendant-or-self::a[@rel]|descendant-or-self::x:a[@rel]
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ca33e8d..2cbac2c 100644 (file)
@@ -4154,7 +4154,7 @@ expandto(location.href);
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d380a62..664f626 100644 (file)
@@ -363,7 +363,7 @@ uncheck individual checkboxes according to their value.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 55760f7..fbe41a1 100644 (file)
@@ -541,7 +541,7 @@ checkboxes with the same name.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a024c1f..c652496 100644 (file)
@@ -693,7 +693,7 @@ false if it was removed (and is now disabled).</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9da2703..40e5ecb 100644 (file)
@@ -264,7 +264,7 @@ keyword.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d3f962d..d90c2de 100644 (file)
@@ -121,7 +121,7 @@ expandto(location.href);
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7943503..ef23e25 100644 (file)
@@ -683,7 +683,7 @@ _abcoll.Container --+
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 414f260..444e4a9 100644 (file)
@@ -428,7 +428,7 @@ string, and defaults to <tt class="rst-docutils literal">'GET'</tt>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 32cc4cc..840ef27 100644 (file)
@@ -255,7 +255,7 @@ objects.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d8c5e43..cf9a966 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2d6cbf9..27f088a 100644 (file)
@@ -370,7 +370,7 @@ for <tt class="rst-docutils literal"><span class="pre">form.set('novalidate')</s
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index afe0ba0..25ca4c0 100644 (file)
@@ -365,7 +365,7 @@ Element classes.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4d00f15..2e07bc8 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 626ae18..782dbad 100644 (file)
@@ -799,7 +799,7 @@ element to get the document's head.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index daef306..de07800 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8dd3713..e6bc5d4 100644 (file)
@@ -406,7 +406,7 @@ checked, this returns None.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index bcb9af3..9c924bf 100644 (file)
@@ -432,7 +432,7 @@ nput' or local-name(.) = 'textarea')]
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 32d6f59..76e6284 100644 (file)
@@ -280,7 +280,7 @@ Mix-in for all input elements (input, select, and textarea)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3bf656c..a0bbd0c 100644 (file)
@@ -312,7 +312,7 @@ can't be found.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 79c7404..602c983 100644 (file)
@@ -584,7 +584,7 @@ to unselect the option.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3f9131f..23131cd 100644 (file)
@@ -362,7 +362,7 @@ unchecks any other value).
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 355fa7b..0602d09 100644 (file)
@@ -377,7 +377,7 @@ attribute of all the <tt class="rst-docutils literal">&lt;option&gt;</tt> elemen
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b16165f..b59f5e9 100644 (file)
@@ -317,7 +317,7 @@ get/set the value with <tt class="rst-docutils literal">.value</tt>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a3b5fdf..e0a7fb5 100644 (file)
@@ -267,7 +267,7 @@ parser like this:</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f046814..9450ddd 100644 (file)
@@ -254,7 +254,7 @@ of the resulting document.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index afe42bd..93cd35f 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9fc5471..4021b1f 100644 (file)
@@ -436,7 +436,7 @@ expandto(location.href);
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9da0cf8..6e6c656 100644 (file)
@@ -749,7 +749,7 @@ a<code class="re-op">-</code>z0<code class="re-op">-</code>9%&amp;\?;=~<code cla
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index dee2e31..1bd18ed 100644 (file)
@@ -1366,7 +1366,7 @@ expandto(location.href);
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 857c944..cbd1fca 100644 (file)
@@ -775,7 +775,7 @@ more sneaky attempts.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 379b93c..682e9e6 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c74e75b..af2f003 100644 (file)
@@ -235,7 +235,7 @@ expandto(location.href);
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 862f278..0f7b9bd 100644 (file)
@@ -1413,7 +1413,7 @@ includes the elements tail.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index cfc5ac8..93456f6 100644 (file)
@@ -1844,7 +1844,7 @@ expandto(location.href);
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index db1d019..d7be1cd 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 5320dc9..2fe7a80 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f82b466..15dcd9a 100644 (file)
@@ -243,7 +243,7 @@ triple with n==0.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 209affd..16e8255 100644 (file)
@@ -208,7 +208,7 @@ Raised when the document no longer contains any pending deletes
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e87e9ab..40d6ace 100644 (file)
@@ -326,7 +326,7 @@ show the href when it changes.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b0dca45..41f8f4b 100644 (file)
@@ -416,7 +416,7 @@ is only represented in a document by a tag.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 68e077c..577bbaf 100644 (file)
@@ -401,7 +401,7 @@ space.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3ec3298..4195ff0 100644 (file)
@@ -565,7 +565,7 @@ escendant-or-self::x:textarea
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index fe39a98..e52e8d0 100644 (file)
@@ -797,7 +797,7 @@ expandto(location.href);
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 382b65c..e75cee8 100644 (file)
@@ -304,7 +304,7 @@ object --+
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d870fa1..233dc04 100644 (file)
@@ -186,7 +186,7 @@ Raised when no form can be found
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 63d2c41..8c16bec 100644 (file)
@@ -476,7 +476,7 @@ default when parsing from a file path (which is read in binary mode).</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a91296c..b5844bc 100644 (file)
@@ -699,7 +699,7 @@ expandto(location.href);
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7c78e0e..b1c529c 100644 (file)
@@ -257,7 +257,7 @@ html5lib.treebuilders.getTreeBuilder(treeType)</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 30676a5..375609f 100644 (file)
@@ -140,7 +140,7 @@ An html5lib XHTML Parser with lxml as tree.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index fcc02d7..93ab37b 100644 (file)
@@ -488,7 +488,7 @@ keyword.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index fbc6457..0dee7cb 100644 (file)
@@ -559,7 +559,7 @@ expandto(location.href);
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6337589..29a3bb4 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8375c5c..b527d02 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c508322..5de4bdf 100644 (file)
@@ -117,7 +117,7 @@ expandto(location.href);
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 5dad52b..0f66345 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 18afca3..26e9072 100644 (file)
@@ -101,7 +101,7 @@ expandto(location.href);
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d43a9a2..88bf916 100644 (file)
@@ -406,7 +406,7 @@ Else convert arg to string.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9259012..20e6a56 100644 (file)
@@ -661,7 +661,7 @@ expandto(location.href);
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8ec2038..77bcd7f 100644 (file)
@@ -628,7 +628,7 @@ been turned off).
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a853929..a22a3e1 100644 (file)
@@ -66,7 +66,7 @@ It is based on <a href="lxml.etree-module.html" class="link">lxml.etree</a>.
 
 <hr />
 <div class="fields">      <p><strong>Version:</strong>
-        4.4.0
+        4.4.1
       </p>
 </div><!-- ==================== CLASSES ==================== -->
 <a name="section-Classes"></a>
@@ -1137,7 +1137,7 @@ elements.  Pass 'string', for example, to make string values the default.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3064151..3f4b555 100644 (file)
@@ -806,7 +806,7 @@ this if they recursively call _init() in the superclasses.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 254a37d..13b6bc7 100644 (file)
@@ -366,7 +366,7 @@ some text
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 467eed0..5720276 100644 (file)
@@ -392,7 +392,7 @@ this if they recursively call _init() in the superclasses.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a4f54ca..02a9caa 100644 (file)
@@ -415,7 +415,7 @@ this if they recursively call _init() in the superclasses.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 13fb98d..dd7ff33 100644 (file)
@@ -409,7 +409,7 @@ this if they recursively call _init() in the superclasses.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ce822fa..6c2c6f6 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 31f8f4f..eea39bd 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3b3570f..542db3a 100644 (file)
@@ -453,7 +453,7 @@ as second argument) or raises AttributeError.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ac299ee..b5edbbd 100644 (file)
@@ -410,7 +410,7 @@ doing.</td>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c634cb2..1d79695 100644 (file)
@@ -861,7 +861,7 @@ returned in document order.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index cbf1da9..e3da16b 100644 (file)
@@ -277,7 +277,7 @@ empty data elements (defaults to StringElement).</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c661d4a..671bf53 100644 (file)
@@ -447,7 +447,7 @@ ignored.  Raises ValueError if the dependencies cannot be fulfilled.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 5d49d1e..988c4e4 100644 (file)
@@ -733,7 +733,7 @@ Instead, use the .text attribute to get a 'real' string.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 80ba90b..e42b942 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 09b74f7..867bb84 100644 (file)
@@ -111,7 +111,7 @@ expandto(location.href);
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8bc3bfc..60879de 100644 (file)
@@ -240,8 +240,8 @@ them against a SAX ContentHandler.</td>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a href="lxml.sax-module.html#__pyx_capi__" class="summary-name">__pyx_capi__</a> = <code title="{'_getNsTag': &lt;capsule object &quot;PyObject *(PyObject *)&quot; at 0x7f32d9188a\
-b0&gt;}"><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">_getNsTag</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;capsule object &quot;PyObject *(PyObj<code class="variable-ellipsis">...</code></code>
+        <a href="lxml.sax-module.html#__pyx_capi__" class="summary-name">__pyx_capi__</a> = <code title="{'_getNsTag': &lt;capsule object &quot;PyObject *(PyObject *)&quot; at 0x7f1f376363\
+60&gt;}"><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">_getNsTag</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;capsule object &quot;PyObject *(PyObj<code class="variable-ellipsis">...</code></code>
     </td>
   </tr>
 <tr>
@@ -282,8 +282,8 @@ b0&gt;}"><code class="variable-group">{</code><code class="variable-quote">'</co
   <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">_getNsTag</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;capsule object &quot;PyObject *(PyObject *)&quot; at 0x7f32d9188a<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-b0&gt;<code class="variable-group">}</code>
+<code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">_getNsTag</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;capsule object &quot;PyObject *(PyObject *)&quot; at 0x7f1f376363<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
+60&gt;<code class="variable-group">}</code>
 </pre></td></tr></table>
 </dd>
   </dl>
@@ -322,7 +322,7 @@ b0&gt;<code class="variable-group">}</code>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c4c938b..ab0c178 100644 (file)
@@ -664,7 +664,7 @@ expandto(location.href);
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 790d8ce..542d164 100644 (file)
@@ -897,7 +897,7 @@ Locator provides useful information.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 92a8e59..5f0a54a 100644 (file)
@@ -379,7 +379,7 @@ Produces SAX events for an element and children.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ee53df6..c8bfadc 100644 (file)
@@ -210,7 +210,7 @@ General SAX error.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 617cfd5..70a5072 100644 (file)
@@ -175,7 +175,7 @@ namespace registry mechanism</em>    </li>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 48ce889..5238d82 100644 (file)
@@ -103,7 +103,7 @@ expandto(location.href);
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b46da97..93d0709 100644 (file)
@@ -582,7 +582,7 @@ occurrences of pattern in string by the replacement repl.</td>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9382970..57a1beb 100644 (file)
@@ -653,7 +653,7 @@ expandto(location.href);
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 1a0820c..25e698a 100644 (file)
@@ -414,7 +414,7 @@ unittest.case.TestCase --+
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2a38ae4..f08fc2b 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8cb6b49..e4702e5 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ebdaba1..8da2a9a 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 467864e..e226834 100644 (file)
@@ -245,7 +245,7 @@ Using a class because a function would bind into a method when used in classes
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3e85372..b097690 100644 (file)
@@ -264,7 +264,7 @@ Simple HTTP request dumper for tests.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2815746..d4c0859 100644 (file)
@@ -199,7 +199,7 @@ expandto(location.href);
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8f4fcff..2324c34 100644 (file)
@@ -247,7 +247,7 @@ object --+
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 1be7042..d5ea264 100644 (file)
@@ -204,7 +204,7 @@ A web server that starts a new thread for each request.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e32837c..c365769 100644 (file)
@@ -331,7 +331,7 @@ message.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 1d6803a..36f21e1 100644 (file)
@@ -1178,7 +1178,7 @@ ElementTree.XML(&quot;&quot;&quot;
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 66d0de3..284831f 100644 (file)
@@ -1499,7 +1499,7 @@ expandto(location.href);
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2bc72b1..cfa645f 100644 (file)
@@ -677,7 +677,7 @@ unserialize(&quot;&quot;&quot;
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index cc2f02a..b9c7575 100644 (file)
@@ -644,7 +644,7 @@ expandto(location.href);
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 99e01cd..b1c3f88 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 009ff45..c2edb63 100644 (file)
@@ -277,7 +277,7 @@ expandto(location.href);
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f17422a..00b5171 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2b51f4c..ebdb5c3 100644 (file)
@@ -270,7 +270,7 @@ Tests for different Element class lookup mechanisms.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c6ff2a7..fe5cdce 100644 (file)
@@ -1474,7 +1474,7 @@ expandto(location.href);
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 401accc..6f50c5b 100644 (file)
@@ -601,7 +601,7 @@ Test cases for different Element class lookup mechanisms.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2e55846..8d4b99e 100644 (file)
@@ -495,7 +495,7 @@ Basic tests for element proxy behaviour.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 40af942..9b5b39e 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9ab0f99..87086f5 100644 (file)
@@ -212,7 +212,7 @@ expandto(location.href);
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 5e550c2..46291d0 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 73efccc..b02ff3b 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index aa6fd14..6c88719 100644 (file)
@@ -341,7 +341,7 @@ expandto(location.href);
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2a1133b..55bf851 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ef9a63c..db8096b 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 35b9543..f20e34f 100644 (file)
@@ -224,7 +224,7 @@ Test cases related to DTD parsing and validation
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9d1732d..671d185 100644 (file)
@@ -1437,7 +1437,7 @@ expandto(location.href);
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 540e1e9..d488c4c 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c0e3c28..03fdbef 100644 (file)
@@ -228,7 +228,7 @@ Tests for the ElementPath implementation.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ea40b8b..7b4a9a4 100644 (file)
@@ -736,7 +736,7 @@ expandto(location.href);
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 164540c..44898fe 100644 (file)
@@ -466,7 +466,7 @@ Originally copied from 'selftest.py'.</td>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b690445..8734772 100644 (file)
@@ -358,7 +358,7 @@ for IO related test cases.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index dafb14a..77f8b67 100644 (file)
@@ -15661,7 +15661,7 @@ expandto(location.href);
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 1ed6e62..8d21578 100644 (file)
@@ -341,7 +341,7 @@ unittest.case.TestCase --+
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 094cc3f..127cb37 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 42a5316..45f8dd8 100644 (file)
@@ -402,7 +402,7 @@ unittest.case.TestCase --+
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ee44fa6..15a4d78 100644 (file)
@@ -402,7 +402,7 @@ unittest.case.TestCase --+
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3991d34..c73c15b 100644 (file)
@@ -377,7 +377,7 @@ unittest.case.TestCase --+
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 468c9f1..be00ecc 100644 (file)
@@ -375,7 +375,7 @@ unittest.case.TestCase --+
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3a51fa9..af80dd9 100644 (file)
@@ -380,7 +380,7 @@ unittest.case.TestCase --+
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 5f68e1e..5281b06 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 25f86e1..ae66fbd 100644 (file)
@@ -375,7 +375,7 @@ unittest.case.TestCase --+
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 19677b1..783c24a 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e8e4a16..f8b1278 100644 (file)
@@ -480,7 +480,7 @@ unittest.case.TestCase --+
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f49a1bc..c626019 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 641fe84..f53d8fb 100644 (file)
@@ -526,7 +526,7 @@ named 'a0', 'a1' ... and so on.</td>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 5ee929d..7208bf9 100644 (file)
@@ -733,7 +733,7 @@ unittest.case.TestCase --+
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f5933df..41e1574 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f2c8919..5b23474 100644 (file)
@@ -358,7 +358,7 @@ expandto(location.href);
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 86d42f3..686b2b3 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index cfec723..6c2a20b 100644 (file)
@@ -232,7 +232,7 @@ test_elementtree</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2675afb..13bc6d9 100644 (file)
 <a name="L9"></a><tt class="py-lineno">   9</tt>  <tt class="py-line"> </tt>
 <a name="L10"></a><tt class="py-lineno">  10</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">__future__</tt> <tt class="py-keyword">import</tt> <tt class="py-name">absolute_import</tt> </tt>
 <a name="L11"></a><tt class="py-lineno">  11</tt>  <tt class="py-line"> </tt>
-<a name="L12"></a><tt class="py-lineno">  12</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-0" class="py-name" targets="Variable lxml.etree.XPath.path=lxml.etree.XPath-class.html#path,Variable lxml.etree._LogEntry.path=lxml.etree._LogEntry-class.html#path"><a title="lxml.etree.XPath.path
+<a name="L12"></a><tt class="py-lineno">  12</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">collections</tt> <tt class="py-keyword">import</tt> <tt class="py-name">OrderedDict</tt> </tt>
+<a name="L13"></a><tt class="py-lineno">  13</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-0" class="py-name" targets="Variable lxml.etree.XPath.path=lxml.etree.XPath-class.html#path,Variable lxml.etree._LogEntry.path=lxml.etree._LogEntry-class.html#path"><a title="lxml.etree.XPath.path
 lxml.etree._LogEntry.path" class="py-name" href="#" onclick="return doclink('link-0', 'path', 'link-0');">path</a></tt> </tt>
-<a name="L13"></a><tt class="py-lineno">  13</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">unittest</tt> </tt>
-<a name="L14"></a><tt class="py-lineno">  14</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-1" class="py-name" targets="Method lxml.etree.PyErrorLog.copy()=lxml.etree.PyErrorLog-class.html#copy,Method lxml.etree._BaseErrorLog.copy()=lxml.etree._BaseErrorLog-class.html#copy,Method lxml.etree._ErrorLog.copy()=lxml.etree._ErrorLog-class.html#copy,Method lxml.etree._IDDict.copy()=lxml.etree._IDDict-class.html#copy,Method lxml.etree._ListErrorLog.copy()=lxml.etree._ListErrorLog-class.html#copy,Function lxml.tests.selftest2.copy()=lxml.tests.selftest2-module.html#copy"><a title="lxml.etree.PyErrorLog.copy
+<a name="L14"></a><tt class="py-lineno">  14</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">unittest</tt> </tt>
+<a name="L15"></a><tt class="py-lineno">  15</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-1" class="py-name" targets="Method lxml.etree.PyErrorLog.copy()=lxml.etree.PyErrorLog-class.html#copy,Method lxml.etree._BaseErrorLog.copy()=lxml.etree._BaseErrorLog-class.html#copy,Method lxml.etree._ErrorLog.copy()=lxml.etree._ErrorLog-class.html#copy,Method lxml.etree._IDDict.copy()=lxml.etree._IDDict-class.html#copy,Method lxml.etree._ListErrorLog.copy()=lxml.etree._ListErrorLog-class.html#copy,Function lxml.tests.selftest2.copy()=lxml.tests.selftest2-module.html#copy"><a title="lxml.etree.PyErrorLog.copy
 lxml.etree._BaseErrorLog.copy
 lxml.etree._ErrorLog.copy
 lxml.etree._IDDict.copy
 lxml.etree._ListErrorLog.copy
 lxml.tests.selftest2.copy" class="py-name" href="#" onclick="return doclink('link-1', 'copy', 'link-1');">copy</a></tt> </tt>
-<a name="L15"></a><tt class="py-lineno">  15</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">sys</tt> </tt>
-<a name="L16"></a><tt class="py-lineno">  16</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">re</tt> </tt>
-<a name="L17"></a><tt class="py-lineno">  17</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">gc</tt> </tt>
-<a name="L18"></a><tt class="py-lineno">  18</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">operator</tt> </tt>
-<a name="L19"></a><tt class="py-lineno">  19</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">tempfile</tt> </tt>
+<a name="L16"></a><tt class="py-lineno">  16</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">sys</tt> </tt>
+<a name="L17"></a><tt class="py-lineno">  17</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">re</tt> </tt>
+<a name="L18"></a><tt class="py-lineno">  18</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">gc</tt> </tt>
+<a name="L19"></a><tt class="py-lineno">  19</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">operator</tt> </tt>
 <a name="L20"></a><tt class="py-lineno">  20</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">textwrap</tt> </tt>
 <a name="L21"></a><tt class="py-lineno">  21</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">zlib</tt> </tt>
 <a name="L22"></a><tt class="py-lineno">  22</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">gzip</tt> </tt>
@@ -1185,10 +1185,10 @@ xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink(
 lxml.etree._Element.keys
 lxml.etree._IDDict.keys
 lxml.html.FieldsDict.keys
-lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-302', 'keys', 'link-302');">keys</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">"attr%d"</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt> <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>
+lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-302', 'keys', 'link-302');">keys</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">"attr%d"</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt> <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">12</tt><tt class="py-op">,</tt> <tt class="py-number">4</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="L290"></a><tt class="py-lineno"> 290</tt>  <tt class="py-line">        <tt id="link-303" class="py-name" targets="Method lxml.etree._Attrib.values()=lxml.etree._Attrib-class.html#values,Method lxml.etree._Element.values()=lxml.etree._Element-class.html#values,Method lxml.etree._IDDict.values()=lxml.etree._IDDict-class.html#values"><a title="lxml.etree._Attrib.values
 lxml.etree._Element.values
-lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-303', 'values', 'link-303');">values</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">"TEST-%d"</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt> <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>
+lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-303', 'values', 'link-303');">values</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">"TEST-%d"</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt> <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">12</tt><tt class="py-op">,</tt> <tt class="py-number">4</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="L291"></a><tt class="py-lineno"> 291</tt>  <tt class="py-line">        <tt id="link-304" class="py-name" targets="Method lxml.etree._Attrib.items()=lxml.etree._Attrib-class.html#items,Method lxml.etree._Element.items()=lxml.etree._Element-class.html#items,Method lxml.etree._IDDict.items()=lxml.etree._IDDict-class.html#items"><a title="lxml.etree._Attrib.items
 lxml.etree._Element.items
 lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-304', 'items', 'link-304');">items</a></tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">zip</tt><tt class="py-op">(</tt><tt id="link-305" class="py-name"><a title="lxml.etree._Attrib.keys
@@ -1239,90 +1239,86 @@ xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return d
 lxml.etree._Element.values
 lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-321', 'values', 'link-303');">values</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 <a name="L298"></a><tt class="py-lineno"> 298</tt>  <tt class="py-line"> </tt>
-<a name="L299"></a><tt class="py-lineno"> 299</tt>  <tt class="py-line">        <tt class="py-name">root2</tt> <tt class="py-op">=</tt> <tt id="link-322" class="py-name"><a title="lxml.etree.Element
+<a name="L299"></a><tt class="py-lineno"> 299</tt>  <tt class="py-line">        <tt class="py-name">attr_order</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt> </tt>
+<a name="L300"></a><tt class="py-lineno"> 300</tt>  <tt class="py-line">            <tt class="py-op">(</tt><tt class="py-string">'attr_99'</tt><tt class="py-op">,</tt> <tt class="py-string">'TOAST-1'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L301"></a><tt class="py-lineno"> 301</tt>  <tt class="py-line">            <tt class="py-op">(</tt><tt class="py-string">'attr_98'</tt><tt class="py-op">,</tt> <tt class="py-string">'TOAST-2'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L302"></a><tt class="py-lineno"> 302</tt>  <tt class="py-line">        <tt class="py-op">]</tt> </tt>
+<a name="L303"></a><tt class="py-lineno"> 303</tt>  <tt class="py-line">        <tt class="py-name">ordered_dict_types</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">OrderedDict</tt><tt class="py-op">,</tt> <tt class="py-keyword">lambda</tt> <tt class="py-name">x</tt><tt class="py-op">:</tt><tt class="py-name">x</tt><tt class="py-op">]</tt> </tt>
+<a name="L304"></a><tt class="py-lineno"> 304</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">3</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="L305"></a><tt class="py-lineno"> 305</tt>  <tt class="py-line">            <tt class="py-name">ordered_dict_types</tt><tt class="py-op">.</tt><tt id="link-322" class="py-name" targets="Method lxml.etree._Element.append()=lxml.etree._Element-class.html#append"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-322', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">dict</tt><tt class="py-op">)</tt> </tt>
+<a name="L306"></a><tt class="py-lineno"> 306</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L307"></a><tt class="py-lineno"> 307</tt>  <tt class="py-line">            <tt class="py-comment"># Keyword arguments are not ordered in Py&lt;3.6, and thus get sorted.</tt> </tt>
+<a name="L308"></a><tt class="py-lineno"> 308</tt>  <tt class="py-line">            <tt class="py-name">attr_order</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="L309"></a><tt class="py-lineno"> 309</tt>  <tt class="py-line">        <tt class="py-name">attr_order</tt> <tt class="py-op">+=</tt> <tt id="link-323" 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-323', 'items', 'link-304');">items</a></tt> </tt>
+<a name="L310"></a><tt class="py-lineno"> 310</tt>  <tt class="py-line">        <tt class="py-name">expected_keys</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">attr</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-keyword">for</tt> <tt class="py-name">attr</tt> <tt class="py-keyword">in</tt> <tt class="py-name">attr_order</tt><tt class="py-op">]</tt> </tt>
+<a name="L311"></a><tt class="py-lineno"> 311</tt>  <tt class="py-line">        <tt class="py-name">expected_values</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">attr</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-keyword">for</tt> <tt class="py-name">attr</tt> <tt class="py-keyword">in</tt> <tt class="py-name">attr_order</tt><tt class="py-op">]</tt> </tt>
+<a name="L312"></a><tt class="py-lineno"> 312</tt>  <tt class="py-line">        <tt class="py-name">expected_items</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">zip</tt><tt class="py-op">(</tt><tt class="py-name">expected_keys</tt><tt class="py-op">,</tt> <tt class="py-name">expected_values</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L313"></a><tt class="py-lineno"> 313</tt>  <tt class="py-line"> </tt>
+<a name="L314"></a><tt class="py-lineno"> 314</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">dict_type</tt> <tt class="py-keyword">in</tt> <tt class="py-name">ordered_dict_types</tt><tt class="py-op">:</tt> </tt>
+<a name="L315"></a><tt class="py-lineno"> 315</tt>  <tt class="py-line">            <tt class="py-name">root2</tt> <tt class="py-op">=</tt> <tt id="link-324" 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-322', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"root2"</tt><tt class="py-op">,</tt> <tt id="link-323" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-323', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-324" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-324', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"root2"</tt><tt class="py-op">,</tt> <tt class="py-name">dict_type</tt><tt class="py-op">(</tt><tt id="link-325" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-325', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-326" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-324', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L300"></a><tt class="py-lineno"> 300</tt>  <tt class="py-line">                        <tt class="py-name">attr_99</tt><tt class="py-op">=</tt><tt class="py-string">'TOAST-1'</tt><tt class="py-op">,</tt> <tt class="py-name">attr_98</tt><tt class="py-op">=</tt><tt class="py-string">'TOAST-2'</tt><tt class="py-op">)</tt> </tt>
-<a name="L301"></a><tt class="py-lineno"> 301</tt>  <tt class="py-line"> </tt>
-<a name="L302"></a><tt class="py-lineno"> 302</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">3</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="L303"></a><tt class="py-lineno"> 303</tt>  <tt class="py-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">'attr_99'</tt><tt class="py-op">,</tt> <tt class="py-string">'attr_98'</tt><tt class="py-op">]</tt> <tt class="py-op">+</tt> <tt id="link-325" 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-325', 'keys', 'link-302');">keys</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L304"></a><tt class="py-lineno"> 304</tt>  <tt class="py-line">                             <tt class="py-name">root2</tt><tt class="py-op">.</tt><tt id="link-326" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-326', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L316"></a><tt class="py-lineno"> 316</tt>  <tt class="py-line">                            <tt class="py-name">attr_99</tt><tt class="py-op">=</tt><tt class="py-string">'TOAST-1'</tt><tt class="py-op">,</tt> <tt class="py-name">attr_98</tt><tt class="py-op">=</tt><tt class="py-string">'TOAST-2'</tt><tt class="py-op">)</tt> </tt>
+<a name="L317"></a><tt class="py-lineno"> 317</tt>  <tt class="py-line"> </tt>
+<a name="L318"></a><tt class="py-lineno"> 318</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L319"></a><tt class="py-lineno"> 319</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertSequenceEqual</tt><tt class="py-op">(</tt><tt class="py-name">expected_keys</tt><tt class="py-op">,</tt> <tt class="py-name">root2</tt><tt class="py-op">.</tt><tt id="link-327" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-326', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-327" class="py-name"><a title="lxml.etree._Attrib.keys
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-327', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-328" 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-327', 'keys', 'link-302');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L305"></a><tt class="py-lineno"> 305</tt>  <tt class="py-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">'TOAST-1'</tt><tt class="py-op">,</tt> <tt class="py-string">'TOAST-2'</tt><tt class="py-op">]</tt> <tt class="py-op">+</tt> <tt id="link-328" 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-328', 'values', 'link-303');">values</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L306"></a><tt class="py-lineno"> 306</tt>  <tt class="py-line">                             <tt class="py-name">root2</tt><tt class="py-op">.</tt><tt id="link-329" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-328', 'keys', 'link-302');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L320"></a><tt class="py-lineno"> 320</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertSequenceEqual</tt><tt class="py-op">(</tt><tt class="py-name">expected_values</tt><tt class="py-op">,</tt> <tt class="py-name">root2</tt><tt class="py-op">.</tt><tt id="link-329" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 lxml.tests.selftest2.attrib
 xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-329', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-330" 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-330', 'values', 'link-303');">values</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L307"></a><tt class="py-lineno"> 307</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L308"></a><tt class="py-lineno"> 308</tt>  <tt class="py-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">'attr_98'</tt><tt class="py-op">,</tt> <tt class="py-string">'attr_99'</tt><tt class="py-op">]</tt> <tt class="py-op">+</tt> <tt id="link-331" 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-331', 'keys', 'link-302');">keys</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L309"></a><tt class="py-lineno"> 309</tt>  <tt class="py-line">                             <tt class="py-name">root2</tt><tt class="py-op">.</tt><tt id="link-332" class="py-name"><a title="lxml.etree._Element.attrib
+<a name="L321"></a><tt class="py-lineno"> 321</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertSequenceEqual</tt><tt class="py-op">(</tt><tt class="py-name">expected_items</tt><tt class="py-op">,</tt> <tt class="py-name">root2</tt><tt class="py-op">.</tt><tt id="link-331" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-332', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-333" 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-333', 'keys', 'link-302');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L310"></a><tt class="py-lineno"> 310</tt>  <tt class="py-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">'TOAST-2'</tt><tt class="py-op">,</tt> <tt class="py-string">'TOAST-1'</tt><tt class="py-op">]</tt> <tt class="py-op">+</tt> <tt id="link-334" 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-334', 'values', 'link-303');">values</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L311"></a><tt class="py-lineno"> 311</tt>  <tt class="py-line">                             <tt class="py-name">root2</tt><tt class="py-op">.</tt><tt id="link-335" class="py-name"><a title="lxml.etree._Element.attrib
-lxml.etree._ProcessingInstruction.attrib
-lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-335', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-336" 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-336', 'values', 'link-303');">values</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L312"></a><tt class="py-lineno"> 312</tt>  <tt class="py-line"> </tt>
-<a name="L313"></a><tt class="py-lineno"> 313</tt>  <tt class="py-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-337" class="py-name"><a title="lxml.etree._Attrib.keys
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-331', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-332" 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-332', 'items', 'link-304');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L322"></a><tt class="py-lineno"> 322</tt>  <tt class="py-line">            <tt class="py-keyword">except</tt> <tt id="link-333" class="py-name" targets="Class exceptions.AssertionError=exceptions.AssertionError-class.html"><a title="exceptions.AssertionError" class="py-name" href="#" onclick="return doclink('link-333', 'AssertionError', 'link-333');">AssertionError</a></tt> <tt class="py-keyword">as</tt> <tt class="py-name">exc</tt><tt class="py-op">:</tt> </tt>
+<a name="L323"></a><tt class="py-lineno"> 323</tt>  <tt class="py-line">                <tt class="py-name">exc</tt><tt class="py-op">.</tt><tt class="py-name">args</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-string">"Order of '%s': %s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">dict_type</tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt><tt class="py-op">,</tt> <tt class="py-name">exc</tt><tt class="py-op">.</tt><tt class="py-name">args</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-op">)</tt> <tt class="py-op">+</tt> <tt class="py-name">exc</tt><tt class="py-op">.</tt><tt class="py-name">args</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="L324"></a><tt class="py-lineno"> 324</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> </tt>
+<a name="L325"></a><tt class="py-lineno"> 325</tt>  <tt class="py-line"> </tt>
+<a name="L326"></a><tt class="py-lineno"> 326</tt>  <tt class="py-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-334" 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-337', 'keys', 'link-302');">keys</a></tt><tt class="py-op">,</tt> <tt id="link-338" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-338', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-339" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-334', 'keys', 'link-302');">keys</a></tt><tt class="py-op">,</tt> <tt id="link-335" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-335', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-336" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-339', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-340" class="py-name"><a title="lxml.etree._Attrib.keys
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-336', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-337" 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-340', 'keys', 'link-302');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L314"></a><tt class="py-lineno"> 314</tt>  <tt class="py-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-341" class="py-name"><a title="lxml.etree._Attrib.values
+lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-337', 'keys', 'link-302');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L327"></a><tt class="py-lineno"> 327</tt>  <tt class="py-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-338" 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-341', 'values', 'link-303');">values</a></tt><tt class="py-op">,</tt> <tt id="link-342" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-342', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-343" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-338', 'values', 'link-303');">values</a></tt><tt class="py-op">,</tt> <tt id="link-339" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-339', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-340" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-343', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-344" class="py-name"><a title="lxml.etree._Attrib.values
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-340', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-341" 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-344', 'values', 'link-303');">values</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L315"></a><tt class="py-lineno"> 315</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_attribute_set_invalid"></a><div id="ETreeOnlyTestCase.test_attribute_set_invalid-def"><a name="L316"></a><tt class="py-lineno"> 316</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_attribute_set_invalid-toggle" onclick="return toggle('ETreeOnlyTestCase.test_attribute_set_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_attribute_set_invalid">test_attribute_set_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_attribute_set_invalid-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_attribute_set_invalid-expanded"><a name="L317"></a><tt class="py-lineno"> 317</tt>  <tt class="py-line">        <tt class="py-comment"># ElementTree accepts arbitrary attribute values</tt> </tt>
-<a name="L318"></a><tt class="py-lineno"> 318</tt>  <tt class="py-line">        <tt class="py-comment"># lxml.etree allows only strings, or None for (html5) boolean attributes</tt> </tt>
-<a name="L319"></a><tt class="py-lineno"> 319</tt>  <tt class="py-line">        <tt id="link-345" class="py-name"><a title="lxml.etree.Element
+lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-341', 'values', 'link-303');">values</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L328"></a><tt class="py-lineno"> 328</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_attribute_set_invalid"></a><div id="ETreeOnlyTestCase.test_attribute_set_invalid-def"><a name="L329"></a><tt class="py-lineno"> 329</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_attribute_set_invalid-toggle" onclick="return toggle('ETreeOnlyTestCase.test_attribute_set_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_attribute_set_invalid">test_attribute_set_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_attribute_set_invalid-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_attribute_set_invalid-expanded"><a name="L330"></a><tt class="py-lineno"> 330</tt>  <tt class="py-line">        <tt class="py-comment"># ElementTree accepts arbitrary attribute values</tt> </tt>
+<a name="L331"></a><tt class="py-lineno"> 331</tt>  <tt class="py-line">        <tt class="py-comment"># lxml.etree allows only strings, or None for (html5) boolean attributes</tt> </tt>
+<a name="L332"></a><tt class="py-lineno"> 332</tt>  <tt class="py-line">        <tt id="link-342" 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-345', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-346" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-342', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-343" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -1330,36 +1326,36 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-346', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-347" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-343', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-344" 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-347', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L320"></a><tt class="py-lineno"> 320</tt>  <tt class="py-line">        <tt id="link-348" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-348', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-349" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-344', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L333"></a><tt class="py-lineno"> 333</tt>  <tt class="py-line">        <tt id="link-345" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-345', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-346" 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-349', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"root"</tt><tt class="py-op">)</tt> </tt>
-<a name="L321"></a><tt class="py-lineno"> 321</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 id="link-350" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-350', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-351" class="py-name"><a title="lxml.etree._Element.set
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-346', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"root"</tt><tt class="py-op">)</tt> </tt>
+<a name="L334"></a><tt class="py-lineno"> 334</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 id="link-347" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-347', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-348" class="py-name"><a title="lxml.etree._Element.set
 lxml.etree._XSLTProcessingInstruction.set
 lxml.html.HtmlElement.set
-lxml.html.HtmlMixin.set" class="py-name" href="#" onclick="return doclink('link-351', 'set', 'link-268');">set</a></tt><tt class="py-op">,</tt> <tt class="py-string">"newattr"</tt><tt class="py-op">,</tt> <tt class="py-number">5</tt><tt class="py-op">)</tt> </tt>
-<a name="L322"></a><tt class="py-lineno"> 322</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 id="link-352" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-352', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-353" class="py-name"><a title="lxml.etree._Element.set
+lxml.html.HtmlMixin.set" class="py-name" href="#" onclick="return doclink('link-348', 'set', 'link-268');">set</a></tt><tt class="py-op">,</tt> <tt class="py-string">"newattr"</tt><tt class="py-op">,</tt> <tt class="py-number">5</tt><tt class="py-op">)</tt> </tt>
+<a name="L335"></a><tt class="py-lineno"> 335</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 id="link-349" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-349', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-350" class="py-name"><a title="lxml.etree._Element.set
 lxml.etree._XSLTProcessingInstruction.set
 lxml.html.HtmlElement.set
-lxml.html.HtmlMixin.set" class="py-name" href="#" onclick="return doclink('link-353', 'set', 'link-268');">set</a></tt><tt class="py-op">,</tt> <tt class="py-string">"newattr"</tt><tt class="py-op">,</tt> <tt class="py-name">object</tt><tt class="py-op">)</tt> </tt>
-<a name="L323"></a><tt class="py-lineno"> 323</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 id="link-354" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-354', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-355" class="py-name"><a title="lxml.etree._Element.set
+lxml.html.HtmlMixin.set" class="py-name" href="#" onclick="return doclink('link-350', 'set', 'link-268');">set</a></tt><tt class="py-op">,</tt> <tt class="py-string">"newattr"</tt><tt class="py-op">,</tt> <tt class="py-name">object</tt><tt class="py-op">)</tt> </tt>
+<a name="L336"></a><tt class="py-lineno"> 336</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 id="link-351" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-351', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-352" class="py-name"><a title="lxml.etree._Element.set
 lxml.etree._XSLTProcessingInstruction.set
 lxml.html.HtmlElement.set
-lxml.html.HtmlMixin.set" class="py-name" href="#" onclick="return doclink('link-355', 'set', 'link-268');">set</a></tt><tt class="py-op">,</tt> <tt class="py-string">"newattr"</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L324"></a><tt class="py-lineno"> 324</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 id="link-356" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-356', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-357" class="py-name"><a title="lxml.etree._Element.set
+lxml.html.HtmlMixin.set" class="py-name" href="#" onclick="return doclink('link-352', 'set', 'link-268');">set</a></tt><tt class="py-op">,</tt> <tt class="py-string">"newattr"</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L337"></a><tt class="py-lineno"> 337</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 id="link-353" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-353', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-354" class="py-name"><a title="lxml.etree._Element.set
 lxml.etree._XSLTProcessingInstruction.set
 lxml.html.HtmlElement.set
-lxml.html.HtmlMixin.set" class="py-name" href="#" onclick="return doclink('link-357', 'set', 'link-268');">set</a></tt><tt class="py-op">,</tt> <tt class="py-string">"newattr"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L325"></a><tt class="py-lineno"> 325</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_strip_attributes"></a><div id="ETreeOnlyTestCase.test_strip_attributes-def"><a name="L326"></a><tt class="py-lineno"> 326</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_strip_attributes-toggle" onclick="return toggle('ETreeOnlyTestCase.test_strip_attributes');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_attributes">test_strip_attributes</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_strip_attributes-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_strip_attributes-expanded"><a name="L327"></a><tt class="py-lineno"> 327</tt>  <tt class="py-line">        <tt id="link-358" class="py-name"><a title="lxml.etree.XML
+lxml.html.HtmlMixin.set" class="py-name" href="#" onclick="return doclink('link-354', 'set', 'link-268');">set</a></tt><tt class="py-op">,</tt> <tt class="py-string">"newattr"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L338"></a><tt class="py-lineno"> 338</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_strip_attributes"></a><div id="ETreeOnlyTestCase.test_strip_attributes-def"><a name="L339"></a><tt class="py-lineno"> 339</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_strip_attributes-toggle" onclick="return toggle('ETreeOnlyTestCase.test_strip_attributes');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_attributes">test_strip_attributes</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_strip_attributes-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_strip_attributes-expanded"><a name="L340"></a><tt class="py-lineno"> 340</tt>  <tt class="py-line">        <tt id="link-355" 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-358', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-359" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-355', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-356" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -1367,17 +1363,17 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-359', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-360" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-356', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-357" 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-360', 'XML', 'link-234');">XML</a></tt> </tt>
-<a name="L328"></a><tt class="py-lineno"> 328</tt>  <tt class="py-line">        <tt id="link-361" class="py-name" targets="Variable lxml.tests.test_threading.ThreadPipelineTestCase.xml=lxml.tests.test_threading.ThreadPipelineTestCase-class.html#xml"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-361', 'xml', 'link-361');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-362" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-362', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test a="5" b="10" c="20"&gt;&lt;x a="4" b="2"/&gt;&lt;/test&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L329"></a><tt class="py-lineno"> 329</tt>  <tt class="py-line"> </tt>
-<a name="L330"></a><tt class="py-lineno"> 330</tt>  <tt class="py-line">        <tt id="link-363" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-363', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-364" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-357', 'XML', 'link-234');">XML</a></tt> </tt>
+<a name="L341"></a><tt class="py-lineno"> 341</tt>  <tt class="py-line">        <tt id="link-358" class="py-name" targets="Variable lxml.tests.test_threading.ThreadPipelineTestCase.xml=lxml.tests.test_threading.ThreadPipelineTestCase-class.html#xml"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-358', 'xml', 'link-358');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-359" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-359', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test a="5" b="10" c="20"&gt;&lt;x a="4" b="2"/&gt;&lt;/test&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L342"></a><tt class="py-lineno"> 342</tt>  <tt class="py-line"> </tt>
+<a name="L343"></a><tt class="py-lineno"> 343</tt>  <tt class="py-line">        <tt id="link-360" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-360', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-361" 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-364', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-365" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-365', 'xml', 'link-361');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L331"></a><tt class="py-lineno"> 331</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-366" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-361', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-362" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-362', 'xml', 'link-358');">xml</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L344"></a><tt class="py-lineno"> 344</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-363" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -1385,16 +1381,16 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-366', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-367" class="py-name" targets="Function lxml.etree.strip_attributes()=lxml.etree-module.html#strip_attributes"><a title="lxml.etree.strip_attributes" class="py-name" href="#" onclick="return doclink('link-367', 'strip_attributes', 'link-367');">strip_attributes</a></tt><tt class="py-op">(</tt><tt id="link-368" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-368', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L332"></a><tt class="py-lineno"> 332</tt>  <tt class="py-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-369" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-369', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test b="10" c="20"&gt;&lt;x b="2"&gt;&lt;/x&gt;&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L333"></a><tt class="py-lineno"> 333</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-370" class="py-name" targets="Method lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement()=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_writeElement,Method lxml.tests.test_etree.ETreeOnlyTestCase._writeElement()=lxml.tests.test_etree.ETreeOnlyTestCase-class.html#_writeElement"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-370', '_writeElement', 'link-370');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-371" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-371', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L334"></a><tt class="py-lineno"> 334</tt>  <tt class="py-line"> </tt>
-<a name="L335"></a><tt class="py-lineno"> 335</tt>  <tt class="py-line">        <tt id="link-372" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-372', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-373" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-363', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-364" class="py-name" targets="Function lxml.etree.strip_attributes()=lxml.etree-module.html#strip_attributes"><a title="lxml.etree.strip_attributes" class="py-name" href="#" onclick="return doclink('link-364', 'strip_attributes', 'link-364');">strip_attributes</a></tt><tt class="py-op">(</tt><tt id="link-365" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-365', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L345"></a><tt class="py-lineno"> 345</tt>  <tt class="py-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-366" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-366', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test b="10" c="20"&gt;&lt;x b="2"&gt;&lt;/x&gt;&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L346"></a><tt class="py-lineno"> 346</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-367" class="py-name" targets="Method lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement()=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_writeElement,Method lxml.tests.test_etree.ETreeOnlyTestCase._writeElement()=lxml.tests.test_etree.ETreeOnlyTestCase-class.html#_writeElement"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-367', '_writeElement', 'link-367');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-368" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-368', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L347"></a><tt class="py-lineno"> 347</tt>  <tt class="py-line"> </tt>
+<a name="L348"></a><tt class="py-lineno"> 348</tt>  <tt class="py-line">        <tt id="link-369" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-369', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-370" 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-373', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-374" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-374', 'xml', 'link-361');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L336"></a><tt class="py-lineno"> 336</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-375" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-370', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-371" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-371', 'xml', 'link-358');">xml</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L349"></a><tt class="py-lineno"> 349</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-372" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -1402,16 +1398,16 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-375', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-376" class="py-name"><a title="lxml.etree.strip_attributes" class="py-name" href="#" onclick="return doclink('link-376', 'strip_attributes', 'link-367');">strip_attributes</a></tt><tt class="py-op">(</tt><tt id="link-377" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-377', 'root', 'link-247');">root</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>
-<a name="L337"></a><tt class="py-lineno"> 337</tt>  <tt class="py-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-378" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-378', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test a="5"&gt;&lt;x a="4"&gt;&lt;/x&gt;&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L338"></a><tt class="py-lineno"> 338</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-379" 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-379', '_writeElement', 'link-370');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-380" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-380', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L339"></a><tt class="py-lineno"> 339</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_strip_attributes_ns"></a><div id="ETreeOnlyTestCase.test_strip_attributes_ns-def"><a name="L340"></a><tt class="py-lineno"> 340</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_strip_attributes_ns-toggle" onclick="return toggle('ETreeOnlyTestCase.test_strip_attributes_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_strip_attributes_ns">test_strip_attributes_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_strip_attributes_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_strip_attributes_ns-expanded"><a name="L341"></a><tt class="py-lineno"> 341</tt>  <tt class="py-line">        <tt id="link-381" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-372', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-373" class="py-name"><a title="lxml.etree.strip_attributes" class="py-name" href="#" onclick="return doclink('link-373', 'strip_attributes', 'link-364');">strip_attributes</a></tt><tt class="py-op">(</tt><tt id="link-374" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-374', 'root', 'link-247');">root</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>
+<a name="L350"></a><tt class="py-lineno"> 350</tt>  <tt class="py-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-375" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-375', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test a="5"&gt;&lt;x a="4"&gt;&lt;/x&gt;&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L351"></a><tt class="py-lineno"> 351</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-376" 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-376', '_writeElement', 'link-367');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-377" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-377', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L352"></a><tt class="py-lineno"> 352</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_strip_attributes_ns"></a><div id="ETreeOnlyTestCase.test_strip_attributes_ns-def"><a name="L353"></a><tt class="py-lineno"> 353</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_strip_attributes_ns-toggle" onclick="return toggle('ETreeOnlyTestCase.test_strip_attributes_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_strip_attributes_ns">test_strip_attributes_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_strip_attributes_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_strip_attributes_ns-expanded"><a name="L354"></a><tt class="py-lineno"> 354</tt>  <tt class="py-line">        <tt id="link-378" 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-381', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-382" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-378', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-379" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -1419,17 +1415,17 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-382', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-383" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-379', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-380" 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-383', 'XML', 'link-234');">XML</a></tt> </tt>
-<a name="L342"></a><tt class="py-lineno"> 342</tt>  <tt class="py-line">        <tt id="link-384" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-384', 'xml', 'link-361');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-385" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-385', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test xmlns:n="http://test/ns" a="6" b="10" c="20" n:a="5"&gt;&lt;x a="4" n:b="2"/&gt;&lt;/test&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L343"></a><tt class="py-lineno"> 343</tt>  <tt class="py-line"> </tt>
-<a name="L344"></a><tt class="py-lineno"> 344</tt>  <tt class="py-line">        <tt id="link-386" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-386', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-387" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-380', 'XML', 'link-234');">XML</a></tt> </tt>
+<a name="L355"></a><tt class="py-lineno"> 355</tt>  <tt class="py-line">        <tt id="link-381" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-381', 'xml', 'link-358');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-382" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-382', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test xmlns:n="http://test/ns" a="6" b="10" c="20" n:a="5"&gt;&lt;x a="4" n:b="2"/&gt;&lt;/test&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L356"></a><tt class="py-lineno"> 356</tt>  <tt class="py-line"> </tt>
+<a name="L357"></a><tt class="py-lineno"> 357</tt>  <tt class="py-line">        <tt id="link-383" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-383', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-384" 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-387', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-388" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-388', 'xml', 'link-361');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L345"></a><tt class="py-lineno"> 345</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-389" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-384', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-385" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-385', 'xml', 'link-358');">xml</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L358"></a><tt class="py-lineno"> 358</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-386" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -1437,17 +1433,17 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-389', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-390" class="py-name"><a title="lxml.etree.strip_attributes" class="py-name" href="#" onclick="return doclink('link-390', 'strip_attributes', 'link-367');">strip_attributes</a></tt><tt class="py-op">(</tt><tt id="link-391" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-391', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L346"></a><tt class="py-lineno"> 346</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L347"></a><tt class="py-lineno"> 347</tt>  <tt class="py-line">            <tt id="link-392" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-392', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test xmlns:n="http://test/ns" b="10" c="20" n:a="5"&gt;&lt;x n:b="2"&gt;&lt;/x&gt;&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L348"></a><tt class="py-lineno"> 348</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-393" 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-393', '_writeElement', 'link-370');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-394" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-394', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L349"></a><tt class="py-lineno"> 349</tt>  <tt class="py-line"> </tt>
-<a name="L350"></a><tt class="py-lineno"> 350</tt>  <tt class="py-line">        <tt id="link-395" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-395', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-396" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-386', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-387" class="py-name"><a title="lxml.etree.strip_attributes" class="py-name" href="#" onclick="return doclink('link-387', 'strip_attributes', 'link-364');">strip_attributes</a></tt><tt class="py-op">(</tt><tt id="link-388" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-388', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L359"></a><tt class="py-lineno"> 359</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L360"></a><tt class="py-lineno"> 360</tt>  <tt class="py-line">            <tt id="link-389" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-389', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test xmlns:n="http://test/ns" b="10" c="20" n:a="5"&gt;&lt;x n:b="2"&gt;&lt;/x&gt;&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L361"></a><tt class="py-lineno"> 361</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-390" 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-390', '_writeElement', 'link-367');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-391" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-391', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L362"></a><tt class="py-lineno"> 362</tt>  <tt class="py-line"> </tt>
+<a name="L363"></a><tt class="py-lineno"> 363</tt>  <tt class="py-line">        <tt id="link-392" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-392', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-393" 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-396', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-397" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-397', 'xml', 'link-361');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L351"></a><tt class="py-lineno"> 351</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-398" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-393', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-394" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-394', 'xml', 'link-358');">xml</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L364"></a><tt class="py-lineno"> 364</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-395" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -1455,17 +1451,17 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-398', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-399" class="py-name"><a title="lxml.etree.strip_attributes" class="py-name" href="#" onclick="return doclink('link-399', 'strip_attributes', 'link-367');">strip_attributes</a></tt><tt class="py-op">(</tt><tt id="link-400" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-400', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'{http://test/ns}a'</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L352"></a><tt class="py-lineno"> 352</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L353"></a><tt class="py-lineno"> 353</tt>  <tt class="py-line">            <tt id="link-401" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-401', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test xmlns:n="http://test/ns" a="6" b="10"&gt;&lt;x a="4" n:b="2"&gt;&lt;/x&gt;&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L354"></a><tt class="py-lineno"> 354</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-402" 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-402', '_writeElement', 'link-370');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-403" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-403', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L355"></a><tt class="py-lineno"> 355</tt>  <tt class="py-line"> </tt>
-<a name="L356"></a><tt class="py-lineno"> 356</tt>  <tt class="py-line">        <tt id="link-404" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-404', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-405" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-395', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-396" class="py-name"><a title="lxml.etree.strip_attributes" class="py-name" href="#" onclick="return doclink('link-396', 'strip_attributes', 'link-364');">strip_attributes</a></tt><tt class="py-op">(</tt><tt id="link-397" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-397', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'{http://test/ns}a'</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L365"></a><tt class="py-lineno"> 365</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L366"></a><tt class="py-lineno"> 366</tt>  <tt class="py-line">            <tt id="link-398" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-398', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test xmlns:n="http://test/ns" a="6" b="10"&gt;&lt;x a="4" n:b="2"&gt;&lt;/x&gt;&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L367"></a><tt class="py-lineno"> 367</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-399" 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-399', '_writeElement', 'link-367');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-400" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-400', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L368"></a><tt class="py-lineno"> 368</tt>  <tt class="py-line"> </tt>
+<a name="L369"></a><tt class="py-lineno"> 369</tt>  <tt class="py-line">        <tt id="link-401" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-401', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-402" 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-405', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-406" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-406', 'xml', 'link-361');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L357"></a><tt class="py-lineno"> 357</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-407" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-402', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-403" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-403', 'xml', 'link-358');">xml</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L370"></a><tt class="py-lineno"> 370</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-404" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -1473,17 +1469,17 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-407', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-408" class="py-name"><a title="lxml.etree.strip_attributes" class="py-name" href="#" onclick="return doclink('link-408', 'strip_attributes', 'link-367');">strip_attributes</a></tt><tt class="py-op">(</tt><tt id="link-409" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-409', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'{http://test/ns}*'</tt><tt class="py-op">)</tt> </tt>
-<a name="L358"></a><tt class="py-lineno"> 358</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L359"></a><tt class="py-lineno"> 359</tt>  <tt class="py-line">            <tt id="link-410" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-410', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test xmlns:n="http://test/ns" a="6" b="10" c="20"&gt;&lt;x a="4"&gt;&lt;/x&gt;&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L360"></a><tt class="py-lineno"> 360</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-411" 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-411', '_writeElement', 'link-370');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-412" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-412', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L361"></a><tt class="py-lineno"> 361</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_strip_elements"></a><div id="ETreeOnlyTestCase.test_strip_elements-def"><a name="L362"></a><tt class="py-lineno"> 362</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_strip_elements-toggle" onclick="return toggle('ETreeOnlyTestCase.test_strip_elements');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_elements">test_strip_elements</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_strip_elements-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_strip_elements-expanded"><a name="L363"></a><tt class="py-lineno"> 363</tt>  <tt class="py-line">        <tt id="link-413" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-404', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-405" class="py-name"><a title="lxml.etree.strip_attributes" class="py-name" href="#" onclick="return doclink('link-405', 'strip_attributes', 'link-364');">strip_attributes</a></tt><tt class="py-op">(</tt><tt id="link-406" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-406', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'{http://test/ns}*'</tt><tt class="py-op">)</tt> </tt>
+<a name="L371"></a><tt class="py-lineno"> 371</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L372"></a><tt class="py-lineno"> 372</tt>  <tt class="py-line">            <tt id="link-407" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-407', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test xmlns:n="http://test/ns" a="6" b="10" c="20"&gt;&lt;x a="4"&gt;&lt;/x&gt;&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L373"></a><tt class="py-lineno"> 373</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-408" 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-408', '_writeElement', 'link-367');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-409" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-409', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L374"></a><tt class="py-lineno"> 374</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_strip_elements"></a><div id="ETreeOnlyTestCase.test_strip_elements-def"><a name="L375"></a><tt class="py-lineno"> 375</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_strip_elements-toggle" onclick="return toggle('ETreeOnlyTestCase.test_strip_elements');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_elements">test_strip_elements</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_strip_elements-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_strip_elements-expanded"><a name="L376"></a><tt class="py-lineno"> 376</tt>  <tt class="py-line">        <tt id="link-410" 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-413', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-414" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-410', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-411" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -1491,17 +1487,17 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-414', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-415" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-411', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-412" 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-415', 'XML', 'link-234');">XML</a></tt> </tt>
-<a name="L364"></a><tt class="py-lineno"> 364</tt>  <tt class="py-line">        <tt id="link-416" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-416', 'xml', 'link-361');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-417" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-417', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;&lt;a&gt;&lt;b&gt;&lt;c/&gt;&lt;/b&gt;&lt;/a&gt;&lt;x&gt;&lt;a&gt;&lt;b/&gt;&lt;c/&gt;&lt;/a&gt;&lt;/x&gt;&lt;/test&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L365"></a><tt class="py-lineno"> 365</tt>  <tt class="py-line"> </tt>
-<a name="L366"></a><tt class="py-lineno"> 366</tt>  <tt class="py-line">        <tt id="link-418" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-418', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-419" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-412', 'XML', 'link-234');">XML</a></tt> </tt>
+<a name="L377"></a><tt class="py-lineno"> 377</tt>  <tt class="py-line">        <tt id="link-413" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-413', 'xml', 'link-358');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-414" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-414', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;&lt;a&gt;&lt;b&gt;&lt;c/&gt;&lt;/b&gt;&lt;/a&gt;&lt;x&gt;&lt;a&gt;&lt;b/&gt;&lt;c/&gt;&lt;/a&gt;&lt;/x&gt;&lt;/test&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L378"></a><tt class="py-lineno"> 378</tt>  <tt class="py-line"> </tt>
+<a name="L379"></a><tt class="py-lineno"> 379</tt>  <tt class="py-line">        <tt id="link-415" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-415', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-416" 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-419', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-420" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-420', 'xml', 'link-361');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L367"></a><tt class="py-lineno"> 367</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-421" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-416', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-417" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-417', 'xml', 'link-358');">xml</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L380"></a><tt class="py-lineno"> 380</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-418" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -1509,16 +1505,16 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-421', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-422" class="py-name" targets="Function lxml.etree.strip_elements()=lxml.etree-module.html#strip_elements"><a title="lxml.etree.strip_elements" class="py-name" href="#" onclick="return doclink('link-422', 'strip_elements', 'link-422');">strip_elements</a></tt><tt class="py-op">(</tt><tt id="link-423" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-423', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L368"></a><tt class="py-lineno"> 368</tt>  <tt class="py-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-424" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-424', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;&lt;x&gt;&lt;/x&gt;&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L369"></a><tt class="py-lineno"> 369</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-425" 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-425', '_writeElement', 'link-370');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-426" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-426', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L370"></a><tt class="py-lineno"> 370</tt>  <tt class="py-line"> </tt>
-<a name="L371"></a><tt class="py-lineno"> 371</tt>  <tt class="py-line">        <tt id="link-427" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-427', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-428" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-418', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-419" class="py-name" targets="Function lxml.etree.strip_elements()=lxml.etree-module.html#strip_elements"><a title="lxml.etree.strip_elements" class="py-name" href="#" onclick="return doclink('link-419', 'strip_elements', 'link-419');">strip_elements</a></tt><tt class="py-op">(</tt><tt id="link-420" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-420', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L381"></a><tt class="py-lineno"> 381</tt>  <tt class="py-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-421" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-421', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;&lt;x&gt;&lt;/x&gt;&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L382"></a><tt class="py-lineno"> 382</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-422" 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-422', '_writeElement', 'link-367');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-423" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-423', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L383"></a><tt class="py-lineno"> 383</tt>  <tt class="py-line"> </tt>
+<a name="L384"></a><tt class="py-lineno"> 384</tt>  <tt class="py-line">        <tt id="link-424" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-424', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-425" 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-428', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-429" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-429', 'xml', 'link-361');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L372"></a><tt class="py-lineno"> 372</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-430" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-425', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-426" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-426', 'xml', 'link-358');">xml</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L385"></a><tt class="py-lineno"> 385</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-427" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -1526,16 +1522,16 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-430', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-431" class="py-name"><a title="lxml.etree.strip_elements" class="py-name" href="#" onclick="return doclink('link-431', 'strip_elements', 'link-422');">strip_elements</a></tt><tt class="py-op">(</tt><tt id="link-432" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-432', 'root', 'link-247');">root</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-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>
-<a name="L373"></a><tt class="py-lineno"> 373</tt>  <tt class="py-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-433" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-433', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;&lt;a&gt;&lt;/a&gt;&lt;x&gt;&lt;a&gt;&lt;/a&gt;&lt;/x&gt;&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L374"></a><tt class="py-lineno"> 374</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-434" 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-434', '_writeElement', 'link-370');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-435" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-435', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L375"></a><tt class="py-lineno"> 375</tt>  <tt class="py-line"> </tt>
-<a name="L376"></a><tt class="py-lineno"> 376</tt>  <tt class="py-line">        <tt id="link-436" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-436', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-437" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-427', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-428" class="py-name"><a title="lxml.etree.strip_elements" class="py-name" href="#" onclick="return doclink('link-428', 'strip_elements', 'link-419');">strip_elements</a></tt><tt class="py-op">(</tt><tt id="link-429" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-429', 'root', 'link-247');">root</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-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>
+<a name="L386"></a><tt class="py-lineno"> 386</tt>  <tt class="py-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-430" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-430', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;&lt;a&gt;&lt;/a&gt;&lt;x&gt;&lt;a&gt;&lt;/a&gt;&lt;/x&gt;&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L387"></a><tt class="py-lineno"> 387</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-431" 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-431', '_writeElement', 'link-367');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-432" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-432', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L388"></a><tt class="py-lineno"> 388</tt>  <tt class="py-line"> </tt>
+<a name="L389"></a><tt class="py-lineno"> 389</tt>  <tt class="py-line">        <tt id="link-433" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-433', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-434" 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-437', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-438" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-438', 'xml', 'link-361');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L377"></a><tt class="py-lineno"> 377</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-439" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-434', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-435" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-435', 'xml', 'link-358');">xml</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L390"></a><tt class="py-lineno"> 390</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-436" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -1543,16 +1539,16 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-439', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-440" class="py-name"><a title="lxml.etree.strip_elements" class="py-name" href="#" onclick="return doclink('link-440', 'strip_elements', 'link-422');">strip_elements</a></tt><tt class="py-op">(</tt><tt id="link-441" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-441', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L378"></a><tt class="py-lineno"> 378</tt>  <tt class="py-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-442" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-442', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;&lt;x&gt;&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;&lt;/x&gt;&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L379"></a><tt class="py-lineno"> 379</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-443" 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-443', '_writeElement', 'link-370');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-444" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-444', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L380"></a><tt class="py-lineno"> 380</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_strip_elements_ns"></a><div id="ETreeOnlyTestCase.test_strip_elements_ns-def"><a name="L381"></a><tt class="py-lineno"> 381</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_strip_elements_ns-toggle" onclick="return toggle('ETreeOnlyTestCase.test_strip_elements_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_strip_elements_ns">test_strip_elements_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_strip_elements_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_strip_elements_ns-expanded"><a name="L382"></a><tt class="py-lineno"> 382</tt>  <tt class="py-line">        <tt id="link-445" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-436', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-437" class="py-name"><a title="lxml.etree.strip_elements" class="py-name" href="#" onclick="return doclink('link-437', 'strip_elements', 'link-419');">strip_elements</a></tt><tt class="py-op">(</tt><tt id="link-438" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-438', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L391"></a><tt class="py-lineno"> 391</tt>  <tt class="py-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-439" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-439', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;&lt;x&gt;&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;&lt;/x&gt;&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L392"></a><tt class="py-lineno"> 392</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-440" 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-440', '_writeElement', 'link-367');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-441" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-441', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L393"></a><tt class="py-lineno"> 393</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_strip_elements_ns"></a><div id="ETreeOnlyTestCase.test_strip_elements_ns-def"><a name="L394"></a><tt class="py-lineno"> 394</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_strip_elements_ns-toggle" onclick="return toggle('ETreeOnlyTestCase.test_strip_elements_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_strip_elements_ns">test_strip_elements_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_strip_elements_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_strip_elements_ns-expanded"><a name="L395"></a><tt class="py-lineno"> 395</tt>  <tt class="py-line">        <tt id="link-442" 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-445', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-446" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-442', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-443" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -1560,17 +1556,17 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-446', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-447" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-443', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-444" 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-447', 'XML', 'link-234');">XML</a></tt> </tt>
-<a name="L383"></a><tt class="py-lineno"> 383</tt>  <tt class="py-line">        <tt id="link-448" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-448', 'xml', 'link-361');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-449" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-449', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TEST&lt;n:a xmlns:n="urn:a"&gt;A&lt;b&gt;B&lt;c xmlns="urn:c"/&gt;C&lt;/b&gt;BT&lt;/n:a&gt;AT&lt;x&gt;X&lt;a&gt;A&lt;b xmlns="urn:a"/&gt;BT&lt;c xmlns="urn:x"/&gt;CT&lt;/a&gt;AT&lt;/x&gt;XT&lt;/test&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L384"></a><tt class="py-lineno"> 384</tt>  <tt class="py-line"> </tt>
-<a name="L385"></a><tt class="py-lineno"> 385</tt>  <tt class="py-line">        <tt id="link-450" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-450', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-451" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-444', 'XML', 'link-234');">XML</a></tt> </tt>
+<a name="L396"></a><tt class="py-lineno"> 396</tt>  <tt class="py-line">        <tt id="link-445" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-445', 'xml', 'link-358');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-446" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-446', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TEST&lt;n:a xmlns:n="urn:a"&gt;A&lt;b&gt;B&lt;c xmlns="urn:c"/&gt;C&lt;/b&gt;BT&lt;/n:a&gt;AT&lt;x&gt;X&lt;a&gt;A&lt;b xmlns="urn:a"/&gt;BT&lt;c xmlns="urn:x"/&gt;CT&lt;/a&gt;AT&lt;/x&gt;XT&lt;/test&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L397"></a><tt class="py-lineno"> 397</tt>  <tt class="py-line"> </tt>
+<a name="L398"></a><tt class="py-lineno"> 398</tt>  <tt class="py-line">        <tt id="link-447" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-447', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-448" 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-451', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-452" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-452', 'xml', 'link-361');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L386"></a><tt class="py-lineno"> 386</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-453" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-448', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-449" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-449', 'xml', 'link-358');">xml</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L399"></a><tt class="py-lineno"> 399</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-450" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -1578,16 +1574,16 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-453', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-454" class="py-name"><a title="lxml.etree.strip_elements" class="py-name" href="#" onclick="return doclink('link-454', 'strip_elements', 'link-422');">strip_elements</a></tt><tt class="py-op">(</tt><tt id="link-455" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-455', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L387"></a><tt class="py-lineno"> 387</tt>  <tt class="py-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-456" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-456', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TEST&lt;n:a xmlns:n="urn:a"&gt;A&lt;b&gt;B&lt;c xmlns="urn:c"&gt;&lt;/c&gt;C&lt;/b&gt;BT&lt;/n:a&gt;AT&lt;x&gt;X&lt;/x&gt;XT&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L388"></a><tt class="py-lineno"> 388</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-457" 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-457', '_writeElement', 'link-370');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-458" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-458', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L389"></a><tt class="py-lineno"> 389</tt>  <tt class="py-line"> </tt>
-<a name="L390"></a><tt class="py-lineno"> 390</tt>  <tt class="py-line">        <tt id="link-459" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-459', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-460" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-450', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-451" class="py-name"><a title="lxml.etree.strip_elements" class="py-name" href="#" onclick="return doclink('link-451', 'strip_elements', 'link-419');">strip_elements</a></tt><tt class="py-op">(</tt><tt id="link-452" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-452', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L400"></a><tt class="py-lineno"> 400</tt>  <tt class="py-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-453" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-453', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TEST&lt;n:a xmlns:n="urn:a"&gt;A&lt;b&gt;B&lt;c xmlns="urn:c"&gt;&lt;/c&gt;C&lt;/b&gt;BT&lt;/n:a&gt;AT&lt;x&gt;X&lt;/x&gt;XT&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L401"></a><tt class="py-lineno"> 401</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-454" 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-454', '_writeElement', 'link-367');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-455" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-455', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L402"></a><tt class="py-lineno"> 402</tt>  <tt class="py-line"> </tt>
+<a name="L403"></a><tt class="py-lineno"> 403</tt>  <tt class="py-line">        <tt id="link-456" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-456', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-457" 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-460', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-461" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-461', 'xml', 'link-361');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L391"></a><tt class="py-lineno"> 391</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-462" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-457', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-458" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-458', 'xml', 'link-358');">xml</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L404"></a><tt class="py-lineno"> 404</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-459" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -1595,16 +1591,16 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-462', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-463" class="py-name"><a title="lxml.etree.strip_elements" class="py-name" href="#" onclick="return doclink('link-463', 'strip_elements', 'link-422');">strip_elements</a></tt><tt class="py-op">(</tt><tt id="link-464" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-464', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'{urn:a}b'</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L392"></a><tt class="py-lineno"> 392</tt>  <tt class="py-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-465" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-465', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TEST&lt;n:a xmlns:n="urn:a"&gt;A&lt;b&gt;B&lt;c xmlns="urn:c"&gt;&lt;/c&gt;C&lt;/b&gt;BT&lt;/n:a&gt;AT&lt;x&gt;X&lt;a&gt;A&lt;c xmlns="urn:x"&gt;&lt;/c&gt;CT&lt;/a&gt;AT&lt;/x&gt;XT&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L393"></a><tt class="py-lineno"> 393</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-466" 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-466', '_writeElement', 'link-370');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-467" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-467', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L394"></a><tt class="py-lineno"> 394</tt>  <tt class="py-line"> </tt>
-<a name="L395"></a><tt class="py-lineno"> 395</tt>  <tt class="py-line">        <tt id="link-468" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-468', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-469" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-459', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-460" class="py-name"><a title="lxml.etree.strip_elements" class="py-name" href="#" onclick="return doclink('link-460', 'strip_elements', 'link-419');">strip_elements</a></tt><tt class="py-op">(</tt><tt id="link-461" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-461', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'{urn:a}b'</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L405"></a><tt class="py-lineno"> 405</tt>  <tt class="py-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-462" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-462', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TEST&lt;n:a xmlns:n="urn:a"&gt;A&lt;b&gt;B&lt;c xmlns="urn:c"&gt;&lt;/c&gt;C&lt;/b&gt;BT&lt;/n:a&gt;AT&lt;x&gt;X&lt;a&gt;A&lt;c xmlns="urn:x"&gt;&lt;/c&gt;CT&lt;/a&gt;AT&lt;/x&gt;XT&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L406"></a><tt class="py-lineno"> 406</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-463" 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-463', '_writeElement', 'link-367');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-464" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-464', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L407"></a><tt class="py-lineno"> 407</tt>  <tt class="py-line"> </tt>
+<a name="L408"></a><tt class="py-lineno"> 408</tt>  <tt class="py-line">        <tt id="link-465" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-465', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-466" 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-469', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-470" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-470', 'xml', 'link-361');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L396"></a><tt class="py-lineno"> 396</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-471" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-466', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-467" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-467', 'xml', 'link-358');">xml</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L409"></a><tt class="py-lineno"> 409</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-468" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -1612,16 +1608,16 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-471', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-472" class="py-name"><a title="lxml.etree.strip_elements" class="py-name" href="#" onclick="return doclink('link-472', 'strip_elements', 'link-422');">strip_elements</a></tt><tt class="py-op">(</tt><tt id="link-473" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-473', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'{urn:a}*'</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L397"></a><tt class="py-lineno"> 397</tt>  <tt class="py-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-474" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-474', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TEST&lt;x&gt;X&lt;a&gt;A&lt;c xmlns="urn:x"&gt;&lt;/c&gt;CT&lt;/a&gt;AT&lt;/x&gt;XT&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L398"></a><tt class="py-lineno"> 398</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-475" 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-475', '_writeElement', 'link-370');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-476" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-476', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L399"></a><tt class="py-lineno"> 399</tt>  <tt class="py-line"> </tt>
-<a name="L400"></a><tt class="py-lineno"> 400</tt>  <tt class="py-line">        <tt id="link-477" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-477', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-478" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-468', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-469" class="py-name"><a title="lxml.etree.strip_elements" class="py-name" href="#" onclick="return doclink('link-469', 'strip_elements', 'link-419');">strip_elements</a></tt><tt class="py-op">(</tt><tt id="link-470" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-470', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'{urn:a}*'</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L410"></a><tt class="py-lineno"> 410</tt>  <tt class="py-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-471" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-471', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TEST&lt;x&gt;X&lt;a&gt;A&lt;c xmlns="urn:x"&gt;&lt;/c&gt;CT&lt;/a&gt;AT&lt;/x&gt;XT&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L411"></a><tt class="py-lineno"> 411</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-472" 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-472', '_writeElement', 'link-367');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-473" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-473', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L412"></a><tt class="py-lineno"> 412</tt>  <tt class="py-line"> </tt>
+<a name="L413"></a><tt class="py-lineno"> 413</tt>  <tt class="py-line">        <tt id="link-474" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-474', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-475" 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-478', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-479" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-479', 'xml', 'link-361');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L401"></a><tt class="py-lineno"> 401</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-480" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-475', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-476" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-476', 'xml', 'link-358');">xml</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L414"></a><tt class="py-lineno"> 414</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-477" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -1629,16 +1625,16 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-480', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-481" class="py-name"><a title="lxml.etree.strip_elements" class="py-name" href="#" onclick="return doclink('link-481', 'strip_elements', 'link-422');">strip_elements</a></tt><tt class="py-op">(</tt><tt id="link-482" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-482', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'{urn:a}*'</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</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="L402"></a><tt class="py-lineno"> 402</tt>  <tt class="py-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-483" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-483', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TESTAT&lt;x&gt;X&lt;a&gt;ABT&lt;c xmlns="urn:x"&gt;&lt;/c&gt;CT&lt;/a&gt;AT&lt;/x&gt;XT&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L403"></a><tt class="py-lineno"> 403</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-484" 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-484', '_writeElement', 'link-370');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-485" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-485', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L404"></a><tt class="py-lineno"> 404</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_strip_tags"></a><div id="ETreeOnlyTestCase.test_strip_tags-def"><a name="L405"></a><tt class="py-lineno"> 405</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_strip_tags-toggle" onclick="return toggle('ETreeOnlyTestCase.test_strip_tags');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags">test_strip_tags</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_strip_tags-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_strip_tags-expanded"><a name="L406"></a><tt class="py-lineno"> 406</tt>  <tt class="py-line">        <tt id="link-486" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-477', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-478" class="py-name"><a title="lxml.etree.strip_elements" class="py-name" href="#" onclick="return doclink('link-478', 'strip_elements', 'link-419');">strip_elements</a></tt><tt class="py-op">(</tt><tt id="link-479" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-479', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'{urn:a}*'</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</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="L415"></a><tt class="py-lineno"> 415</tt>  <tt class="py-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-480" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-480', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TESTAT&lt;x&gt;X&lt;a&gt;ABT&lt;c xmlns="urn:x"&gt;&lt;/c&gt;CT&lt;/a&gt;AT&lt;/x&gt;XT&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L416"></a><tt class="py-lineno"> 416</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-481" 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-481', '_writeElement', 'link-367');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-482" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-482', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L417"></a><tt class="py-lineno"> 417</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_strip_tags"></a><div id="ETreeOnlyTestCase.test_strip_tags-def"><a name="L418"></a><tt class="py-lineno"> 418</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_strip_tags-toggle" onclick="return toggle('ETreeOnlyTestCase.test_strip_tags');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags">test_strip_tags</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_strip_tags-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_strip_tags-expanded"><a name="L419"></a><tt class="py-lineno"> 419</tt>  <tt class="py-line">        <tt id="link-483" 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-486', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-487" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-483', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-484" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -1646,17 +1642,17 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-487', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-488" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-484', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-485" 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-488', 'XML', 'link-234');">XML</a></tt> </tt>
-<a name="L407"></a><tt class="py-lineno"> 407</tt>  <tt class="py-line">        <tt id="link-489" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-489', 'xml', 'link-361');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-490" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-490', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TEST&lt;a&gt;A&lt;b&gt;B&lt;c/&gt;CT&lt;/b&gt;BT&lt;/a&gt;AT&lt;x&gt;X&lt;a&gt;A&lt;b/&gt;BT&lt;c/&gt;CT&lt;/a&gt;AT&lt;/x&gt;XT&lt;/test&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L408"></a><tt class="py-lineno"> 408</tt>  <tt class="py-line"> </tt>
-<a name="L409"></a><tt class="py-lineno"> 409</tt>  <tt class="py-line">        <tt id="link-491" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-491', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-492" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-485', 'XML', 'link-234');">XML</a></tt> </tt>
+<a name="L420"></a><tt class="py-lineno"> 420</tt>  <tt class="py-line">        <tt id="link-486" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-486', 'xml', 'link-358');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-487" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-487', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TEST&lt;a&gt;A&lt;b&gt;B&lt;c/&gt;CT&lt;/b&gt;BT&lt;/a&gt;AT&lt;x&gt;X&lt;a&gt;A&lt;b/&gt;BT&lt;c/&gt;CT&lt;/a&gt;AT&lt;/x&gt;XT&lt;/test&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L421"></a><tt class="py-lineno"> 421</tt>  <tt class="py-line"> </tt>
+<a name="L422"></a><tt class="py-lineno"> 422</tt>  <tt class="py-line">        <tt id="link-488" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-488', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-489" 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-492', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-493" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-493', 'xml', 'link-361');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L410"></a><tt class="py-lineno"> 410</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-494" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-489', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-490" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-490', 'xml', 'link-358');">xml</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L423"></a><tt class="py-lineno"> 423</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-491" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -1664,16 +1660,16 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-494', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-495" class="py-name" targets="Function lxml.etree.strip_tags()=lxml.etree-module.html#strip_tags"><a title="lxml.etree.strip_tags" class="py-name" href="#" onclick="return doclink('link-495', 'strip_tags', 'link-495');">strip_tags</a></tt><tt class="py-op">(</tt><tt id="link-496" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-496', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L411"></a><tt class="py-lineno"> 411</tt>  <tt class="py-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-497" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-497', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TESTA&lt;b&gt;B&lt;c&gt;&lt;/c&gt;CT&lt;/b&gt;BTAT&lt;x&gt;XA&lt;b&gt;&lt;/b&gt;BT&lt;c&gt;&lt;/c&gt;CTAT&lt;/x&gt;XT&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L412"></a><tt class="py-lineno"> 412</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-498" 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-498', '_writeElement', 'link-370');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-499" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-499', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L413"></a><tt class="py-lineno"> 413</tt>  <tt class="py-line"> </tt>
-<a name="L414"></a><tt class="py-lineno"> 414</tt>  <tt class="py-line">        <tt id="link-500" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-500', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-501" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-491', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-492" class="py-name" targets="Function lxml.etree.strip_tags()=lxml.etree-module.html#strip_tags"><a title="lxml.etree.strip_tags" class="py-name" href="#" onclick="return doclink('link-492', 'strip_tags', 'link-492');">strip_tags</a></tt><tt class="py-op">(</tt><tt id="link-493" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-493', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L424"></a><tt class="py-lineno"> 424</tt>  <tt class="py-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-494" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-494', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TESTA&lt;b&gt;B&lt;c&gt;&lt;/c&gt;CT&lt;/b&gt;BTAT&lt;x&gt;XA&lt;b&gt;&lt;/b&gt;BT&lt;c&gt;&lt;/c&gt;CTAT&lt;/x&gt;XT&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L425"></a><tt class="py-lineno"> 425</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-495" 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-495', '_writeElement', 'link-367');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-496" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-496', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L426"></a><tt class="py-lineno"> 426</tt>  <tt class="py-line"> </tt>
+<a name="L427"></a><tt class="py-lineno"> 427</tt>  <tt class="py-line">        <tt id="link-497" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-497', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-498" 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-501', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-502" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-502', 'xml', 'link-361');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L415"></a><tt class="py-lineno"> 415</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-503" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-498', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-499" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-499', 'xml', 'link-358');">xml</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L428"></a><tt class="py-lineno"> 428</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-500" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -1681,16 +1677,16 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-503', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-504" class="py-name"><a title="lxml.etree.strip_tags" class="py-name" href="#" onclick="return doclink('link-504', 'strip_tags', 'link-495');">strip_tags</a></tt><tt class="py-op">(</tt><tt id="link-505" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-505', 'root', 'link-247');">root</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-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>
-<a name="L416"></a><tt class="py-lineno"> 416</tt>  <tt class="py-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-506" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-506', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TEST&lt;a&gt;ABCTBT&lt;/a&gt;AT&lt;x&gt;X&lt;a&gt;ABTCT&lt;/a&gt;AT&lt;/x&gt;XT&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L417"></a><tt class="py-lineno"> 417</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-507" 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-507', '_writeElement', 'link-370');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-508" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-508', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L418"></a><tt class="py-lineno"> 418</tt>  <tt class="py-line"> </tt>
-<a name="L419"></a><tt class="py-lineno"> 419</tt>  <tt class="py-line">        <tt id="link-509" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-509', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-510" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-500', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-501" class="py-name"><a title="lxml.etree.strip_tags" class="py-name" href="#" onclick="return doclink('link-501', 'strip_tags', 'link-492');">strip_tags</a></tt><tt class="py-op">(</tt><tt id="link-502" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-502', 'root', 'link-247');">root</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-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>
+<a name="L429"></a><tt class="py-lineno"> 429</tt>  <tt class="py-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-503" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-503', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TEST&lt;a&gt;ABCTBT&lt;/a&gt;AT&lt;x&gt;X&lt;a&gt;ABTCT&lt;/a&gt;AT&lt;/x&gt;XT&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L430"></a><tt class="py-lineno"> 430</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-504" 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-504', '_writeElement', 'link-367');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-505" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-505', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L431"></a><tt class="py-lineno"> 431</tt>  <tt class="py-line"> </tt>
+<a name="L432"></a><tt class="py-lineno"> 432</tt>  <tt class="py-line">        <tt id="link-506" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-506', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-507" 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-510', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-511" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-511', 'xml', 'link-361');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L420"></a><tt class="py-lineno"> 420</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-512" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-507', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-508" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-508', 'xml', 'link-358');">xml</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L433"></a><tt class="py-lineno"> 433</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-509" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -1698,16 +1694,16 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-512', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-513" class="py-name"><a title="lxml.etree.strip_tags" class="py-name" href="#" onclick="return doclink('link-513', 'strip_tags', 'link-495');">strip_tags</a></tt><tt class="py-op">(</tt><tt id="link-514" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-514', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L421"></a><tt class="py-lineno"> 421</tt>  <tt class="py-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-515" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-515', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TEST&lt;a&gt;A&lt;b&gt;BCT&lt;/b&gt;BT&lt;/a&gt;AT&lt;x&gt;X&lt;a&gt;A&lt;b&gt;&lt;/b&gt;BTCT&lt;/a&gt;AT&lt;/x&gt;XT&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L422"></a><tt class="py-lineno"> 422</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-516" 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-516', '_writeElement', 'link-370');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-517" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-517', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L423"></a><tt class="py-lineno"> 423</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_strip_tags_pi_comment"></a><div id="ETreeOnlyTestCase.test_strip_tags_pi_comment-def"><a name="L424"></a><tt class="py-lineno"> 424</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_strip_tags_pi_comment-toggle" onclick="return toggle('ETreeOnlyTestCase.test_strip_tags_pi_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_strip_tags_pi_comment">test_strip_tags_pi_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_strip_tags_pi_comment-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_strip_tags_pi_comment-expanded"><a name="L425"></a><tt class="py-lineno"> 425</tt>  <tt class="py-line">        <tt id="link-518" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-509', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-510" class="py-name"><a title="lxml.etree.strip_tags" class="py-name" href="#" onclick="return doclink('link-510', 'strip_tags', 'link-492');">strip_tags</a></tt><tt class="py-op">(</tt><tt id="link-511" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-511', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L434"></a><tt class="py-lineno"> 434</tt>  <tt class="py-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-512" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-512', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TEST&lt;a&gt;A&lt;b&gt;BCT&lt;/b&gt;BT&lt;/a&gt;AT&lt;x&gt;X&lt;a&gt;A&lt;b&gt;&lt;/b&gt;BTCT&lt;/a&gt;AT&lt;/x&gt;XT&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L435"></a><tt class="py-lineno"> 435</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-513" 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-513', '_writeElement', 'link-367');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-514" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-514', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L436"></a><tt class="py-lineno"> 436</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_strip_tags_pi_comment"></a><div id="ETreeOnlyTestCase.test_strip_tags_pi_comment-def"><a name="L437"></a><tt class="py-lineno"> 437</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_strip_tags_pi_comment-toggle" onclick="return toggle('ETreeOnlyTestCase.test_strip_tags_pi_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_strip_tags_pi_comment">test_strip_tags_pi_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_strip_tags_pi_comment-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_strip_tags_pi_comment-expanded"><a name="L438"></a><tt class="py-lineno"> 438</tt>  <tt class="py-line">        <tt id="link-515" 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-518', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-519" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-515', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-516" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -1715,11 +1711,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-519', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-520" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-516', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-517" 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-520', 'XML', 'link-234');">XML</a></tt> </tt>
-<a name="L426"></a><tt class="py-lineno"> 426</tt>  <tt class="py-line">        <tt id="link-521" class="py-name" targets="Function lxml.etree.PI()=lxml.etree-module.html#PI"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-521', 'PI', 'link-521');">PI</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-522" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-517', 'XML', 'link-234');">XML</a></tt> </tt>
+<a name="L439"></a><tt class="py-lineno"> 439</tt>  <tt class="py-line">        <tt id="link-518" class="py-name" targets="Function lxml.etree.PI()=lxml.etree-module.html#PI"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-518', 'PI', 'link-518');">PI</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-519" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -1727,8 +1723,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-522', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt class="py-name">ProcessingInstruction</tt> </tt>
-<a name="L427"></a><tt class="py-lineno"> 427</tt>  <tt class="py-line">        <tt id="link-523" class="py-name" targets="Function lxml.etree.Comment()=lxml.etree-module.html#Comment"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-523', 'Comment', 'link-523');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-524" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-519', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt class="py-name">ProcessingInstruction</tt> </tt>
+<a name="L440"></a><tt class="py-lineno"> 440</tt>  <tt class="py-line">        <tt id="link-520" class="py-name" targets="Function lxml.etree.Comment()=lxml.etree-module.html#Comment"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-520', 'Comment', 'link-520');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-521" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -1736,14 +1732,14 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-524', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-525" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-525', 'Comment', 'link-523');">Comment</a></tt> </tt>
-<a name="L428"></a><tt class="py-lineno"> 428</tt>  <tt class="py-line">        <tt id="link-526" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-526', 'xml', 'link-361');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-527" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-527', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--comment1--&gt;\n&lt;?PI1?&gt;\n&lt;test&gt;TEST&lt;!--comment2--&gt;XT&lt;?PI2?&gt;&lt;/test&gt;\n&lt;!--comment3--&gt;\n&lt;?PI1?&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L429"></a><tt class="py-lineno"> 429</tt>  <tt class="py-line"> </tt>
-<a name="L430"></a><tt class="py-lineno"> 430</tt>  <tt class="py-line">        <tt id="link-528" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-528', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-529" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-521', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-522" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-522', 'Comment', 'link-520');">Comment</a></tt> </tt>
+<a name="L441"></a><tt class="py-lineno"> 441</tt>  <tt class="py-line">        <tt id="link-523" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-523', 'xml', 'link-358');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-524" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-524', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--comment1--&gt;\n&lt;?PI1?&gt;\n&lt;test&gt;TEST&lt;!--comment2--&gt;XT&lt;?PI2?&gt;&lt;/test&gt;\n&lt;!--comment3--&gt;\n&lt;?PI1?&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L442"></a><tt class="py-lineno"> 442</tt>  <tt class="py-line"> </tt>
+<a name="L443"></a><tt class="py-lineno"> 443</tt>  <tt class="py-line">        <tt id="link-525" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-525', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-526" 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-529', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-530" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-530', 'xml', 'link-361');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L431"></a><tt class="py-lineno"> 431</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-531" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-526', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-527" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-527', 'xml', 'link-358');">xml</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L444"></a><tt class="py-lineno"> 444</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-528" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -1751,16 +1747,16 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-531', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-532" class="py-name"><a title="lxml.etree.strip_tags" class="py-name" href="#" onclick="return doclink('link-532', 'strip_tags', 'link-495');">strip_tags</a></tt><tt class="py-op">(</tt><tt id="link-533" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-533', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt id="link-534" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-534', 'PI', 'link-521');">PI</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L432"></a><tt class="py-lineno"> 432</tt>  <tt class="py-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-535" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-535', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--comment1--&gt;\n&lt;?PI1?&gt;\n&lt;test&gt;TEST&lt;!--comment2--&gt;XT&lt;/test&gt;\n&lt;!--comment3--&gt;\n&lt;?PI1?&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L433"></a><tt class="py-lineno"> 433</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-536" 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-536', '_writeElement', 'link-370');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-537" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-537', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L434"></a><tt class="py-lineno"> 434</tt>  <tt class="py-line"> </tt>
-<a name="L435"></a><tt class="py-lineno"> 435</tt>  <tt class="py-line">        <tt id="link-538" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-538', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-539" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-528', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-529" class="py-name"><a title="lxml.etree.strip_tags" class="py-name" href="#" onclick="return doclink('link-529', 'strip_tags', 'link-492');">strip_tags</a></tt><tt class="py-op">(</tt><tt id="link-530" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-530', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt id="link-531" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-531', 'PI', 'link-518');">PI</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L445"></a><tt class="py-lineno"> 445</tt>  <tt class="py-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-532" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-532', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--comment1--&gt;\n&lt;?PI1?&gt;\n&lt;test&gt;TEST&lt;!--comment2--&gt;XT&lt;/test&gt;\n&lt;!--comment3--&gt;\n&lt;?PI1?&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L446"></a><tt class="py-lineno"> 446</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-533" 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-533', '_writeElement', 'link-367');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-534" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-534', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L447"></a><tt class="py-lineno"> 447</tt>  <tt class="py-line"> </tt>
+<a name="L448"></a><tt class="py-lineno"> 448</tt>  <tt class="py-line">        <tt id="link-535" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-535', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-536" 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-539', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-540" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-540', 'xml', 'link-361');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L436"></a><tt class="py-lineno"> 436</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-541" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-536', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-537" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-537', 'xml', 'link-358');">xml</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L449"></a><tt class="py-lineno"> 449</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-538" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -1768,16 +1764,16 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-541', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-542" class="py-name"><a title="lxml.etree.strip_tags" class="py-name" href="#" onclick="return doclink('link-542', 'strip_tags', 'link-495');">strip_tags</a></tt><tt class="py-op">(</tt><tt id="link-543" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-543', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt id="link-544" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-544', 'Comment', 'link-523');">Comment</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L437"></a><tt class="py-lineno"> 437</tt>  <tt class="py-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-545" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-545', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--comment1--&gt;\n&lt;?PI1?&gt;\n&lt;test&gt;TESTXT&lt;?PI2?&gt;&lt;/test&gt;\n&lt;!--comment3--&gt;\n&lt;?PI1?&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L438"></a><tt class="py-lineno"> 438</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-546" 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-546', '_writeElement', 'link-370');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-547" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-547', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L439"></a><tt class="py-lineno"> 439</tt>  <tt class="py-line"> </tt>
-<a name="L440"></a><tt class="py-lineno"> 440</tt>  <tt class="py-line">        <tt id="link-548" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-548', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-549" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-538', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-539" class="py-name"><a title="lxml.etree.strip_tags" class="py-name" href="#" onclick="return doclink('link-539', 'strip_tags', 'link-492');">strip_tags</a></tt><tt class="py-op">(</tt><tt id="link-540" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-540', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt id="link-541" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-541', 'Comment', 'link-520');">Comment</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L450"></a><tt class="py-lineno"> 450</tt>  <tt class="py-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-542" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-542', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--comment1--&gt;\n&lt;?PI1?&gt;\n&lt;test&gt;TESTXT&lt;?PI2?&gt;&lt;/test&gt;\n&lt;!--comment3--&gt;\n&lt;?PI1?&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L451"></a><tt class="py-lineno"> 451</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-543" 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-543', '_writeElement', 'link-367');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-544" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-544', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L452"></a><tt class="py-lineno"> 452</tt>  <tt class="py-line"> </tt>
+<a name="L453"></a><tt class="py-lineno"> 453</tt>  <tt class="py-line">        <tt id="link-545" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-545', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-546" 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-549', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-550" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-550', 'xml', 'link-361');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L441"></a><tt class="py-lineno"> 441</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-551" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-546', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-547" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-547', 'xml', 'link-358');">xml</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L454"></a><tt class="py-lineno"> 454</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-548" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -1785,16 +1781,16 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-551', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-552" class="py-name"><a title="lxml.etree.strip_tags" class="py-name" href="#" onclick="return doclink('link-552', 'strip_tags', 'link-495');">strip_tags</a></tt><tt class="py-op">(</tt><tt id="link-553" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-553', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt id="link-554" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-554', 'PI', 'link-521');">PI</a></tt><tt class="py-op">,</tt> <tt id="link-555" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-555', 'Comment', 'link-523');">Comment</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L442"></a><tt class="py-lineno"> 442</tt>  <tt class="py-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-556" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-556', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--comment1--&gt;\n&lt;?PI1?&gt;\n&lt;test&gt;TESTXT&lt;/test&gt;\n&lt;!--comment3--&gt;\n&lt;?PI1?&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L443"></a><tt class="py-lineno"> 443</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-557" 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-557', '_writeElement', 'link-370');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-558" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-558', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L444"></a><tt class="py-lineno"> 444</tt>  <tt class="py-line"> </tt>
-<a name="L445"></a><tt class="py-lineno"> 445</tt>  <tt class="py-line">        <tt id="link-559" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-559', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-560" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-548', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-549" class="py-name"><a title="lxml.etree.strip_tags" class="py-name" href="#" onclick="return doclink('link-549', 'strip_tags', 'link-492');">strip_tags</a></tt><tt class="py-op">(</tt><tt id="link-550" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-550', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt id="link-551" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-551', 'PI', 'link-518');">PI</a></tt><tt class="py-op">,</tt> <tt id="link-552" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-552', 'Comment', 'link-520');">Comment</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L455"></a><tt class="py-lineno"> 455</tt>  <tt class="py-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-553" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-553', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--comment1--&gt;\n&lt;?PI1?&gt;\n&lt;test&gt;TESTXT&lt;/test&gt;\n&lt;!--comment3--&gt;\n&lt;?PI1?&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L456"></a><tt class="py-lineno"> 456</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-554" 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-554', '_writeElement', 'link-367');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-555" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-555', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L457"></a><tt class="py-lineno"> 457</tt>  <tt class="py-line"> </tt>
+<a name="L458"></a><tt class="py-lineno"> 458</tt>  <tt class="py-line">        <tt id="link-556" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-556', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-557" 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-560', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-561" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-561', 'xml', 'link-361');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L446"></a><tt class="py-lineno"> 446</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-562" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-557', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-558" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-558', 'xml', 'link-358');">xml</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L459"></a><tt class="py-lineno"> 459</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-559" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -1802,16 +1798,16 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-562', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-563" class="py-name"><a title="lxml.etree.strip_tags" class="py-name" href="#" onclick="return doclink('link-563', 'strip_tags', 'link-495');">strip_tags</a></tt><tt class="py-op">(</tt><tt id="link-564" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-564', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt id="link-565" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-565', 'Comment', 'link-523');">Comment</a></tt><tt class="py-op">,</tt> <tt id="link-566" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-566', 'PI', 'link-521');">PI</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L447"></a><tt class="py-lineno"> 447</tt>  <tt class="py-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-567" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-567', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--comment1--&gt;\n&lt;?PI1?&gt;\n&lt;test&gt;TESTXT&lt;/test&gt;\n&lt;!--comment3--&gt;\n&lt;?PI1?&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L448"></a><tt class="py-lineno"> 448</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-568" 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-568', '_writeElement', 'link-370');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-569" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-569', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L449"></a><tt class="py-lineno"> 449</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_strip_tags_pi_comment_all"></a><div id="ETreeOnlyTestCase.test_strip_tags_pi_comment_all-def"><a name="L450"></a><tt class="py-lineno"> 450</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_strip_tags_pi_comment_all-toggle" onclick="return toggle('ETreeOnlyTestCase.test_strip_tags_pi_comment_all');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_pi_comment_all">test_strip_tags_pi_comment_all</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_strip_tags_pi_comment_all-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_strip_tags_pi_comment_all-expanded"><a name="L451"></a><tt class="py-lineno"> 451</tt>  <tt class="py-line">        <tt id="link-570" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-559', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-560" class="py-name"><a title="lxml.etree.strip_tags" class="py-name" href="#" onclick="return doclink('link-560', 'strip_tags', 'link-492');">strip_tags</a></tt><tt class="py-op">(</tt><tt id="link-561" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-561', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt id="link-562" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-562', 'Comment', 'link-520');">Comment</a></tt><tt class="py-op">,</tt> <tt id="link-563" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-563', 'PI', 'link-518');">PI</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L460"></a><tt class="py-lineno"> 460</tt>  <tt class="py-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-564" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-564', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--comment1--&gt;\n&lt;?PI1?&gt;\n&lt;test&gt;TESTXT&lt;/test&gt;\n&lt;!--comment3--&gt;\n&lt;?PI1?&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L461"></a><tt class="py-lineno"> 461</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-565" 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-565', '_writeElement', 'link-367');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-566" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-566', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L462"></a><tt class="py-lineno"> 462</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_strip_tags_pi_comment_all"></a><div id="ETreeOnlyTestCase.test_strip_tags_pi_comment_all-def"><a name="L463"></a><tt class="py-lineno"> 463</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_strip_tags_pi_comment_all-toggle" onclick="return toggle('ETreeOnlyTestCase.test_strip_tags_pi_comment_all');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_pi_comment_all">test_strip_tags_pi_comment_all</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_strip_tags_pi_comment_all-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_strip_tags_pi_comment_all-expanded"><a name="L464"></a><tt class="py-lineno"> 464</tt>  <tt class="py-line">        <tt id="link-567" 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-570', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-571" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-567', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-568" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -1819,13 +1815,13 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-571', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-572" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-568', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-569" 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-572', 'XML', 'link-234');">XML</a></tt> </tt>
-<a name="L452"></a><tt class="py-lineno"> 452</tt>  <tt class="py-line">        <tt id="link-573" class="py-name" targets="Function lxml.etree.ElementTree()=lxml.etree-module.html#ElementTree,Module xml.etree.ElementTree=xml.etree.ElementTree-module.html,Class xml.etree.ElementTree.ElementTree=xml.etree.ElementTree.ElementTree-class.html"><a title="lxml.etree.ElementTree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-569', 'XML', 'link-234');">XML</a></tt> </tt>
+<a name="L465"></a><tt class="py-lineno"> 465</tt>  <tt class="py-line">        <tt id="link-570" class="py-name" targets="Function lxml.etree.ElementTree()=lxml.etree-module.html#ElementTree,Module xml.etree.ElementTree=xml.etree.ElementTree-module.html,Class xml.etree.ElementTree.ElementTree=xml.etree.ElementTree.ElementTree-class.html"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-573', 'ElementTree', 'link-573');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-574" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-570', 'ElementTree', 'link-570');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-571" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -1833,10 +1829,10 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-574', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-575" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-571', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-572" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-575', 'ElementTree', 'link-573');">ElementTree</a></tt> </tt>
-<a name="L453"></a><tt class="py-lineno"> 453</tt>  <tt class="py-line">        <tt id="link-576" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-576', 'PI', 'link-521');">PI</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-577" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-572', 'ElementTree', 'link-570');">ElementTree</a></tt> </tt>
+<a name="L466"></a><tt class="py-lineno"> 466</tt>  <tt class="py-line">        <tt id="link-573" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-573', 'PI', 'link-518');">PI</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-574" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -1844,8 +1840,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-577', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt class="py-name">ProcessingInstruction</tt> </tt>
-<a name="L454"></a><tt class="py-lineno"> 454</tt>  <tt class="py-line">        <tt id="link-578" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-578', 'Comment', 'link-523');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-579" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-574', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt class="py-name">ProcessingInstruction</tt> </tt>
+<a name="L467"></a><tt class="py-lineno"> 467</tt>  <tt class="py-line">        <tt id="link-575" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-575', 'Comment', 'link-520');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-576" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -1853,14 +1849,14 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-579', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-580" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-580', 'Comment', 'link-523');">Comment</a></tt> </tt>
-<a name="L455"></a><tt class="py-lineno"> 455</tt>  <tt class="py-line">        <tt id="link-581" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-581', 'xml', 'link-361');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-582" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-582', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--comment1--&gt;\n&lt;?PI1?&gt;\n&lt;test&gt;TEST&lt;!--comment2--&gt;XT&lt;?PI2?&gt;&lt;/test&gt;\n&lt;!--comment3--&gt;\n&lt;?PI1?&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L456"></a><tt class="py-lineno"> 456</tt>  <tt class="py-line"> </tt>
-<a name="L457"></a><tt class="py-lineno"> 457</tt>  <tt class="py-line">        <tt id="link-583" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-583', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-584" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-576', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-577" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-577', 'Comment', 'link-520');">Comment</a></tt> </tt>
+<a name="L468"></a><tt class="py-lineno"> 468</tt>  <tt class="py-line">        <tt id="link-578" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-578', 'xml', 'link-358');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-579" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-579', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--comment1--&gt;\n&lt;?PI1?&gt;\n&lt;test&gt;TEST&lt;!--comment2--&gt;XT&lt;?PI2?&gt;&lt;/test&gt;\n&lt;!--comment3--&gt;\n&lt;?PI1?&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L469"></a><tt class="py-lineno"> 469</tt>  <tt class="py-line"> </tt>
+<a name="L470"></a><tt class="py-lineno"> 470</tt>  <tt class="py-line">        <tt id="link-580" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-580', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-581" 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-584', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-585" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-585', 'xml', 'link-361');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L458"></a><tt class="py-lineno"> 458</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-586" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-581', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-582" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-582', 'xml', 'link-358');">xml</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L471"></a><tt class="py-lineno"> 471</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-583" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -1868,18 +1864,18 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-586', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-587" class="py-name"><a title="lxml.etree.strip_tags" class="py-name" href="#" onclick="return doclink('link-587', 'strip_tags', 'link-495');">strip_tags</a></tt><tt class="py-op">(</tt><tt id="link-588" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-583', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-584" class="py-name"><a title="lxml.etree.strip_tags" class="py-name" href="#" onclick="return doclink('link-584', 'strip_tags', 'link-492');">strip_tags</a></tt><tt class="py-op">(</tt><tt id="link-585" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-588', 'ElementTree', 'link-573');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-589" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-589', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-590" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-590', 'PI', 'link-521');">PI</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L459"></a><tt class="py-lineno"> 459</tt>  <tt class="py-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-591" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-591', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--comment1--&gt;\n&lt;test&gt;TEST&lt;!--comment2--&gt;XT&lt;/test&gt;\n&lt;!--comment3--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L460"></a><tt class="py-lineno"> 460</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-592" 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-592', '_writeElement', 'link-370');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-593" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-593', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L461"></a><tt class="py-lineno"> 461</tt>  <tt class="py-line"> </tt>
-<a name="L462"></a><tt class="py-lineno"> 462</tt>  <tt class="py-line">        <tt id="link-594" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-594', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-595" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-585', 'ElementTree', 'link-570');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-586" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-586', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-587" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-587', 'PI', 'link-518');">PI</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L472"></a><tt class="py-lineno"> 472</tt>  <tt class="py-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-588" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-588', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--comment1--&gt;\n&lt;test&gt;TEST&lt;!--comment2--&gt;XT&lt;/test&gt;\n&lt;!--comment3--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L473"></a><tt class="py-lineno"> 473</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-589" 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-589', '_writeElement', 'link-367');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-590" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-590', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L474"></a><tt class="py-lineno"> 474</tt>  <tt class="py-line"> </tt>
+<a name="L475"></a><tt class="py-lineno"> 475</tt>  <tt class="py-line">        <tt id="link-591" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-591', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-592" 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-595', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-596" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-596', 'xml', 'link-361');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L463"></a><tt class="py-lineno"> 463</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-597" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-592', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-593" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-593', 'xml', 'link-358');">xml</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L476"></a><tt class="py-lineno"> 476</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-594" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -1887,18 +1883,18 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-597', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-598" class="py-name"><a title="lxml.etree.strip_tags" class="py-name" href="#" onclick="return doclink('link-598', 'strip_tags', 'link-495');">strip_tags</a></tt><tt class="py-op">(</tt><tt id="link-599" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-594', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-595" class="py-name"><a title="lxml.etree.strip_tags" class="py-name" href="#" onclick="return doclink('link-595', 'strip_tags', 'link-492');">strip_tags</a></tt><tt class="py-op">(</tt><tt id="link-596" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-599', 'ElementTree', 'link-573');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-600" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-600', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-601" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-601', 'Comment', 'link-523');">Comment</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L464"></a><tt class="py-lineno"> 464</tt>  <tt class="py-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-602" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-602', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;?PI1?&gt;\n&lt;test&gt;TESTXT&lt;?PI2?&gt;&lt;/test&gt;\n&lt;?PI1?&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L465"></a><tt class="py-lineno"> 465</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-603" 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-603', '_writeElement', 'link-370');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-604" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-604', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L466"></a><tt class="py-lineno"> 466</tt>  <tt class="py-line"> </tt>
-<a name="L467"></a><tt class="py-lineno"> 467</tt>  <tt class="py-line">        <tt id="link-605" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-605', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-606" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-596', 'ElementTree', 'link-570');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-597" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-597', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-598" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-598', 'Comment', 'link-520');">Comment</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L477"></a><tt class="py-lineno"> 477</tt>  <tt class="py-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-599" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-599', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;?PI1?&gt;\n&lt;test&gt;TESTXT&lt;?PI2?&gt;&lt;/test&gt;\n&lt;?PI1?&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L478"></a><tt class="py-lineno"> 478</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-600" 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-600', '_writeElement', 'link-367');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-601" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-601', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L479"></a><tt class="py-lineno"> 479</tt>  <tt class="py-line"> </tt>
+<a name="L480"></a><tt class="py-lineno"> 480</tt>  <tt class="py-line">        <tt id="link-602" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-602', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-603" 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-606', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-607" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-607', 'xml', 'link-361');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L468"></a><tt class="py-lineno"> 468</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-608" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-603', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-604" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-604', 'xml', 'link-358');">xml</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L481"></a><tt class="py-lineno"> 481</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-605" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -1906,18 +1902,18 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-608', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-609" class="py-name"><a title="lxml.etree.strip_tags" class="py-name" href="#" onclick="return doclink('link-609', 'strip_tags', 'link-495');">strip_tags</a></tt><tt class="py-op">(</tt><tt id="link-610" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-605', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-606" class="py-name"><a title="lxml.etree.strip_tags" class="py-name" href="#" onclick="return doclink('link-606', 'strip_tags', 'link-492');">strip_tags</a></tt><tt class="py-op">(</tt><tt id="link-607" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-610', 'ElementTree', 'link-573');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-611" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-611', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-612" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-612', 'PI', 'link-521');">PI</a></tt><tt class="py-op">,</tt> <tt id="link-613" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-613', 'Comment', 'link-523');">Comment</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L469"></a><tt class="py-lineno"> 469</tt>  <tt class="py-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-614" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-614', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TESTXT&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L470"></a><tt class="py-lineno"> 470</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-615" 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-615', '_writeElement', 'link-370');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-616" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-616', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L471"></a><tt class="py-lineno"> 471</tt>  <tt class="py-line"> </tt>
-<a name="L472"></a><tt class="py-lineno"> 472</tt>  <tt class="py-line">        <tt id="link-617" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-617', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-618" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-607', 'ElementTree', 'link-570');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-608" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-608', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-609" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-609', 'PI', 'link-518');">PI</a></tt><tt class="py-op">,</tt> <tt id="link-610" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-610', 'Comment', 'link-520');">Comment</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L482"></a><tt class="py-lineno"> 482</tt>  <tt class="py-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-611" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-611', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TESTXT&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L483"></a><tt class="py-lineno"> 483</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-612" 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-612', '_writeElement', 'link-367');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-613" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-613', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L484"></a><tt class="py-lineno"> 484</tt>  <tt class="py-line"> </tt>
+<a name="L485"></a><tt class="py-lineno"> 485</tt>  <tt class="py-line">        <tt id="link-614" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-614', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-615" 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-618', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-619" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-619', 'xml', 'link-361');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L473"></a><tt class="py-lineno"> 473</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-620" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-615', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-616" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-616', 'xml', 'link-358');">xml</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L486"></a><tt class="py-lineno"> 486</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-617" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -1925,18 +1921,18 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-620', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-621" class="py-name"><a title="lxml.etree.strip_tags" class="py-name" href="#" onclick="return doclink('link-621', 'strip_tags', 'link-495');">strip_tags</a></tt><tt class="py-op">(</tt><tt id="link-622" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-617', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-618" class="py-name"><a title="lxml.etree.strip_tags" class="py-name" href="#" onclick="return doclink('link-618', 'strip_tags', 'link-492');">strip_tags</a></tt><tt class="py-op">(</tt><tt id="link-619" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-622', 'ElementTree', 'link-573');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-623" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-623', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-624" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-624', 'Comment', 'link-523');">Comment</a></tt><tt class="py-op">,</tt> <tt id="link-625" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-625', 'PI', 'link-521');">PI</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L474"></a><tt class="py-lineno"> 474</tt>  <tt class="py-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-626" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-626', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TESTXT&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L475"></a><tt class="py-lineno"> 475</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-627" 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-627', '_writeElement', 'link-370');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-628" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-628', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L476"></a><tt class="py-lineno"> 476</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_strip_tags_doc_style"></a><div id="ETreeOnlyTestCase.test_strip_tags_doc_style-def"><a name="L477"></a><tt class="py-lineno"> 477</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_strip_tags_doc_style-toggle" onclick="return toggle('ETreeOnlyTestCase.test_strip_tags_doc_style');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_doc_style">test_strip_tags_doc_style</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_strip_tags_doc_style-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_strip_tags_doc_style-expanded"><a name="L478"></a><tt class="py-lineno"> 478</tt>  <tt class="py-line">        <tt id="link-629" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-619', 'ElementTree', 'link-570');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-620" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-620', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-621" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-621', 'Comment', 'link-520');">Comment</a></tt><tt class="py-op">,</tt> <tt id="link-622" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-622', 'PI', 'link-518');">PI</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L487"></a><tt class="py-lineno"> 487</tt>  <tt class="py-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-623" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-623', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TESTXT&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L488"></a><tt class="py-lineno"> 488</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-624" 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-624', '_writeElement', 'link-367');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-625" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-625', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L489"></a><tt class="py-lineno"> 489</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_strip_tags_doc_style"></a><div id="ETreeOnlyTestCase.test_strip_tags_doc_style-def"><a name="L490"></a><tt class="py-lineno"> 490</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_strip_tags_doc_style-toggle" onclick="return toggle('ETreeOnlyTestCase.test_strip_tags_doc_style');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_doc_style">test_strip_tags_doc_style</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_strip_tags_doc_style-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_strip_tags_doc_style-expanded"><a name="L491"></a><tt class="py-lineno"> 491</tt>  <tt class="py-line">        <tt id="link-626" 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-629', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-630" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-626', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-627" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -1944,29 +1940,29 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-630', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-631" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-627', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-628" 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-631', 'XML', 'link-234');">XML</a></tt> </tt>
-<a name="L479"></a><tt class="py-lineno"> 479</tt>  <tt class="py-line">        <tt id="link-632" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-632', 'xml', 'link-361');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-633" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-633', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''</tt> </tt>
-<a name="L480"></a><tt class="py-lineno"> 480</tt>  <tt class="py-line"><tt class="py-string">        &lt;div&gt;</tt> </tt>
-<a name="L481"></a><tt class="py-lineno"> 481</tt>  <tt class="py-line"><tt class="py-string">            &lt;div&gt;</tt> </tt>
-<a name="L482"></a><tt class="py-lineno"> 482</tt>  <tt class="py-line"><tt class="py-string">                I like &lt;strong&gt;sheep&lt;/strong&gt;.</tt> </tt>
-<a name="L483"></a><tt class="py-lineno"> 483</tt>  <tt class="py-line"><tt class="py-string">                &lt;br/&gt;</tt> </tt>
-<a name="L484"></a><tt class="py-lineno"> 484</tt>  <tt class="py-line"><tt class="py-string">                I like lots of &lt;strong&gt;sheep&lt;/strong&gt;.</tt> </tt>
-<a name="L485"></a><tt class="py-lineno"> 485</tt>  <tt class="py-line"><tt class="py-string">                &lt;br/&gt;</tt> </tt>
-<a name="L486"></a><tt class="py-lineno"> 486</tt>  <tt class="py-line"><tt class="py-string">                Click &lt;a href="http://www.sheep.com"&gt;here&lt;/a&gt;</tt> </tt>
-<a name="L487"></a><tt class="py-lineno"> 487</tt>  <tt class="py-line"><tt class="py-string">                 for &lt;a href="http://www.sheep.com"&gt;those&lt;/a&gt; sheep.</tt> </tt>
-<a name="L488"></a><tt class="py-lineno"> 488</tt>  <tt class="py-line"><tt class="py-string">                &lt;br/&gt;</tt> </tt>
-<a name="L489"></a><tt class="py-lineno"> 489</tt>  <tt class="py-line"><tt class="py-string">            &lt;/div&gt;</tt> </tt>
-<a name="L490"></a><tt class="py-lineno"> 490</tt>  <tt class="py-line"><tt class="py-string">        &lt;/div&gt;</tt> </tt>
-<a name="L491"></a><tt class="py-lineno"> 491</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">.</tt><tt id="link-634" class="py-name" targets="Function lxml.doctestcompare.strip()=lxml.doctestcompare-module.html#strip"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-634', 'strip', 'link-634');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L492"></a><tt class="py-lineno"> 492</tt>  <tt class="py-line"> </tt>
-<a name="L493"></a><tt class="py-lineno"> 493</tt>  <tt class="py-line">        <tt id="link-635" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-635', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-636" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-628', 'XML', 'link-234');">XML</a></tt> </tt>
+<a name="L492"></a><tt class="py-lineno"> 492</tt>  <tt class="py-line">        <tt id="link-629" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-629', 'xml', 'link-358');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-630" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-630', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''</tt> </tt>
+<a name="L493"></a><tt class="py-lineno"> 493</tt>  <tt class="py-line"><tt class="py-string">        &lt;div&gt;</tt> </tt>
+<a name="L494"></a><tt class="py-lineno"> 494</tt>  <tt class="py-line"><tt class="py-string">            &lt;div&gt;</tt> </tt>
+<a name="L495"></a><tt class="py-lineno"> 495</tt>  <tt class="py-line"><tt class="py-string">                I like &lt;strong&gt;sheep&lt;/strong&gt;.</tt> </tt>
+<a name="L496"></a><tt class="py-lineno"> 496</tt>  <tt class="py-line"><tt class="py-string">                &lt;br/&gt;</tt> </tt>
+<a name="L497"></a><tt class="py-lineno"> 497</tt>  <tt class="py-line"><tt class="py-string">                I like lots of &lt;strong&gt;sheep&lt;/strong&gt;.</tt> </tt>
+<a name="L498"></a><tt class="py-lineno"> 498</tt>  <tt class="py-line"><tt class="py-string">                &lt;br/&gt;</tt> </tt>
+<a name="L499"></a><tt class="py-lineno"> 499</tt>  <tt class="py-line"><tt class="py-string">                Click &lt;a href="http://www.sheep.com"&gt;here&lt;/a&gt;</tt> </tt>
+<a name="L500"></a><tt class="py-lineno"> 500</tt>  <tt class="py-line"><tt class="py-string">                 for &lt;a href="http://www.sheep.com"&gt;those&lt;/a&gt; sheep.</tt> </tt>
+<a name="L501"></a><tt class="py-lineno"> 501</tt>  <tt class="py-line"><tt class="py-string">                &lt;br/&gt;</tt> </tt>
+<a name="L502"></a><tt class="py-lineno"> 502</tt>  <tt class="py-line"><tt class="py-string">            &lt;/div&gt;</tt> </tt>
+<a name="L503"></a><tt class="py-lineno"> 503</tt>  <tt class="py-line"><tt class="py-string">        &lt;/div&gt;</tt> </tt>
+<a name="L504"></a><tt class="py-lineno"> 504</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">.</tt><tt id="link-631" class="py-name" targets="Function lxml.doctestcompare.strip()=lxml.doctestcompare-module.html#strip"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-631', 'strip', 'link-631');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L505"></a><tt class="py-lineno"> 505</tt>  <tt class="py-line"> </tt>
+<a name="L506"></a><tt class="py-lineno"> 506</tt>  <tt class="py-line">        <tt id="link-632" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-632', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-633" 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-636', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-637" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-637', 'xml', 'link-361');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L494"></a><tt class="py-lineno"> 494</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-638" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-633', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-634" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-634', 'xml', 'link-358');">xml</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L507"></a><tt class="py-lineno"> 507</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-635" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -1974,16 +1970,16 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-638', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-639" class="py-name"><a title="lxml.etree.strip_tags" class="py-name" href="#" onclick="return doclink('link-639', 'strip_tags', 'link-495');">strip_tags</a></tt><tt class="py-op">(</tt><tt id="link-640" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-640', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L495"></a><tt class="py-lineno"> 495</tt>  <tt class="py-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">sub</tt><tt class="py-op">(</tt><tt id="link-641" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-641', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/?a[^&gt;]*&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-642" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-642', '_bytes', 'link-18');">_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-643" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-643', 'xml', 'link-361');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-644" class="py-name" targets="Method lxml.etree._Element.replace()=lxml.etree._Element-class.html#replace"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-644', 'replace', 'link-644');">replace</a></tt><tt class="py-op">(</tt><tt id="link-645" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-645', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;br/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-646" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-646', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;br&gt;&lt;/br&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L496"></a><tt class="py-lineno"> 496</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-647" 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-647', '_writeElement', 'link-370');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-648" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-648', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L497"></a><tt class="py-lineno"> 497</tt>  <tt class="py-line"> </tt>
-<a name="L498"></a><tt class="py-lineno"> 498</tt>  <tt class="py-line">        <tt id="link-649" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-649', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-650" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-635', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-636" class="py-name"><a title="lxml.etree.strip_tags" class="py-name" href="#" onclick="return doclink('link-636', 'strip_tags', 'link-492');">strip_tags</a></tt><tt class="py-op">(</tt><tt id="link-637" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-637', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L508"></a><tt class="py-lineno"> 508</tt>  <tt class="py-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">sub</tt><tt class="py-op">(</tt><tt id="link-638" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-638', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/?a[^&gt;]*&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-639" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-639', '_bytes', 'link-18');">_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-640" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-640', 'xml', 'link-358');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-641" class="py-name" targets="Method lxml.etree._Element.replace()=lxml.etree._Element-class.html#replace"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-641', 'replace', 'link-641');">replace</a></tt><tt class="py-op">(</tt><tt id="link-642" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-642', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;br/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-643" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-643', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;br&gt;&lt;/br&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L509"></a><tt class="py-lineno"> 509</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-644" 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-644', '_writeElement', 'link-367');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-645" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-645', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L510"></a><tt class="py-lineno"> 510</tt>  <tt class="py-line"> </tt>
+<a name="L511"></a><tt class="py-lineno"> 511</tt>  <tt class="py-line">        <tt id="link-646" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-646', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-647" 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-650', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-651" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-651', 'xml', 'link-361');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L499"></a><tt class="py-lineno"> 499</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-652" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-647', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-648" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-648', 'xml', 'link-358');">xml</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L512"></a><tt class="py-lineno"> 512</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-649" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -1991,17 +1987,17 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-652', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-653" class="py-name"><a title="lxml.etree.strip_tags" class="py-name" href="#" onclick="return doclink('link-653', 'strip_tags', 'link-495');">strip_tags</a></tt><tt class="py-op">(</tt><tt id="link-654" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-654', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt class="py-string">'br'</tt><tt class="py-op">)</tt> </tt>
-<a name="L500"></a><tt class="py-lineno"> 500</tt>  <tt class="py-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">sub</tt><tt class="py-op">(</tt><tt id="link-655" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-655', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/?a[^&gt;]*&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-656" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-656', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L501"></a><tt class="py-lineno"> 501</tt>  <tt class="py-line">                                 <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">sub</tt><tt class="py-op">(</tt><tt id="link-657" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-657', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;br[^&gt;]*&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-658" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-658', '_bytes', 'link-18');">_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-659" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-659', 'xml', 'link-361');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L502"></a><tt class="py-lineno"> 502</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-660" 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-660', '_writeElement', 'link-370');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-661" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-661', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L503"></a><tt class="py-lineno"> 503</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_strip_tags_ns"></a><div id="ETreeOnlyTestCase.test_strip_tags_ns-def"><a name="L504"></a><tt class="py-lineno"> 504</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_strip_tags_ns-toggle" onclick="return toggle('ETreeOnlyTestCase.test_strip_tags_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_strip_tags_ns">test_strip_tags_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_strip_tags_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_strip_tags_ns-expanded"><a name="L505"></a><tt class="py-lineno"> 505</tt>  <tt class="py-line">        <tt id="link-662" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-649', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-650" class="py-name"><a title="lxml.etree.strip_tags" class="py-name" href="#" onclick="return doclink('link-650', 'strip_tags', 'link-492');">strip_tags</a></tt><tt class="py-op">(</tt><tt id="link-651" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-651', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt class="py-string">'br'</tt><tt class="py-op">)</tt> </tt>
+<a name="L513"></a><tt class="py-lineno"> 513</tt>  <tt class="py-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">sub</tt><tt class="py-op">(</tt><tt id="link-652" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-652', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/?a[^&gt;]*&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-653" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-653', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L514"></a><tt class="py-lineno"> 514</tt>  <tt class="py-line">                                 <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">sub</tt><tt class="py-op">(</tt><tt id="link-654" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-654', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;br[^&gt;]*&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-655" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-655', '_bytes', 'link-18');">_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-656" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-656', 'xml', 'link-358');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L515"></a><tt class="py-lineno"> 515</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-657" 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-657', '_writeElement', 'link-367');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-658" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-658', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L516"></a><tt class="py-lineno"> 516</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_strip_tags_ns"></a><div id="ETreeOnlyTestCase.test_strip_tags_ns-def"><a name="L517"></a><tt class="py-lineno"> 517</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_strip_tags_ns-toggle" onclick="return toggle('ETreeOnlyTestCase.test_strip_tags_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_strip_tags_ns">test_strip_tags_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_strip_tags_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_strip_tags_ns-expanded"><a name="L518"></a><tt class="py-lineno"> 518</tt>  <tt class="py-line">        <tt id="link-659" 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-662', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-663" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-659', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-660" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -2009,17 +2005,17 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-663', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-664" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-660', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-661" 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-664', 'XML', 'link-234');">XML</a></tt> </tt>
-<a name="L506"></a><tt class="py-lineno"> 506</tt>  <tt class="py-line">        <tt id="link-665" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-665', 'xml', 'link-361');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-666" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-666', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TEST&lt;n:a xmlns:n="urn:a"&gt;A&lt;b&gt;B&lt;c xmlns="urn:c"/&gt;CT&lt;/b&gt;BT&lt;/n:a&gt;AT&lt;x&gt;X&lt;a&gt;A&lt;b xmlns="urn:a"/&gt;BT&lt;c xmlns="urn:x"/&gt;CT&lt;/a&gt;AT&lt;/x&gt;XT&lt;/test&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L507"></a><tt class="py-lineno"> 507</tt>  <tt class="py-line"> </tt>
-<a name="L508"></a><tt class="py-lineno"> 508</tt>  <tt class="py-line">        <tt id="link-667" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-667', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-668" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-661', 'XML', 'link-234');">XML</a></tt> </tt>
+<a name="L519"></a><tt class="py-lineno"> 519</tt>  <tt class="py-line">        <tt id="link-662" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-662', 'xml', 'link-358');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-663" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-663', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TEST&lt;n:a xmlns:n="urn:a"&gt;A&lt;b&gt;B&lt;c xmlns="urn:c"/&gt;CT&lt;/b&gt;BT&lt;/n:a&gt;AT&lt;x&gt;X&lt;a&gt;A&lt;b xmlns="urn:a"/&gt;BT&lt;c xmlns="urn:x"/&gt;CT&lt;/a&gt;AT&lt;/x&gt;XT&lt;/test&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L520"></a><tt class="py-lineno"> 520</tt>  <tt class="py-line"> </tt>
+<a name="L521"></a><tt class="py-lineno"> 521</tt>  <tt class="py-line">        <tt id="link-664" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-664', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-665" 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-668', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-669" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-669', 'xml', 'link-361');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L509"></a><tt class="py-lineno"> 509</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-670" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-665', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-666" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-666', 'xml', 'link-358');">xml</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L522"></a><tt class="py-lineno"> 522</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-667" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -2027,16 +2023,16 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-670', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-671" class="py-name"><a title="lxml.etree.strip_tags" class="py-name" href="#" onclick="return doclink('link-671', 'strip_tags', 'link-495');">strip_tags</a></tt><tt class="py-op">(</tt><tt id="link-672" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-672', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L510"></a><tt class="py-lineno"> 510</tt>  <tt class="py-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-673" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-673', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TEST&lt;n:a xmlns:n="urn:a"&gt;A&lt;b&gt;B&lt;c xmlns="urn:c"&gt;&lt;/c&gt;CT&lt;/b&gt;BT&lt;/n:a&gt;AT&lt;x&gt;XA&lt;b xmlns="urn:a"&gt;&lt;/b&gt;BT&lt;c xmlns="urn:x"&gt;&lt;/c&gt;CTAT&lt;/x&gt;XT&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L511"></a><tt class="py-lineno"> 511</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-674" 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-674', '_writeElement', 'link-370');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-675" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-675', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L512"></a><tt class="py-lineno"> 512</tt>  <tt class="py-line"> </tt>
-<a name="L513"></a><tt class="py-lineno"> 513</tt>  <tt class="py-line">        <tt id="link-676" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-676', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-677" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-667', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-668" class="py-name"><a title="lxml.etree.strip_tags" class="py-name" href="#" onclick="return doclink('link-668', 'strip_tags', 'link-492');">strip_tags</a></tt><tt class="py-op">(</tt><tt id="link-669" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-669', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L523"></a><tt class="py-lineno"> 523</tt>  <tt class="py-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-670" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-670', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TEST&lt;n:a xmlns:n="urn:a"&gt;A&lt;b&gt;B&lt;c xmlns="urn:c"&gt;&lt;/c&gt;CT&lt;/b&gt;BT&lt;/n:a&gt;AT&lt;x&gt;XA&lt;b xmlns="urn:a"&gt;&lt;/b&gt;BT&lt;c xmlns="urn:x"&gt;&lt;/c&gt;CTAT&lt;/x&gt;XT&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L524"></a><tt class="py-lineno"> 524</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-671" 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-671', '_writeElement', 'link-367');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-672" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-672', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L525"></a><tt class="py-lineno"> 525</tt>  <tt class="py-line"> </tt>
+<a name="L526"></a><tt class="py-lineno"> 526</tt>  <tt class="py-line">        <tt id="link-673" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-673', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-674" 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-677', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-678" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-678', 'xml', 'link-361');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L514"></a><tt class="py-lineno"> 514</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-679" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-674', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-675" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-675', 'xml', 'link-358');">xml</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L527"></a><tt class="py-lineno"> 527</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-676" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -2044,16 +2040,16 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-679', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-680" class="py-name"><a title="lxml.etree.strip_tags" class="py-name" href="#" onclick="return doclink('link-680', 'strip_tags', 'link-495');">strip_tags</a></tt><tt class="py-op">(</tt><tt id="link-681" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-681', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'{urn:a}b'</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L515"></a><tt class="py-lineno"> 515</tt>  <tt class="py-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-682" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-682', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TEST&lt;n:a xmlns:n="urn:a"&gt;A&lt;b&gt;B&lt;c xmlns="urn:c"&gt;&lt;/c&gt;CT&lt;/b&gt;BT&lt;/n:a&gt;AT&lt;x&gt;X&lt;a&gt;ABT&lt;c xmlns="urn:x"&gt;&lt;/c&gt;CT&lt;/a&gt;AT&lt;/x&gt;XT&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L516"></a><tt class="py-lineno"> 516</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-683" 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-683', '_writeElement', 'link-370');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-684" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-684', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L517"></a><tt class="py-lineno"> 517</tt>  <tt class="py-line"> </tt>
-<a name="L518"></a><tt class="py-lineno"> 518</tt>  <tt class="py-line">        <tt id="link-685" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-685', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-686" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-676', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-677" class="py-name"><a title="lxml.etree.strip_tags" class="py-name" href="#" onclick="return doclink('link-677', 'strip_tags', 'link-492');">strip_tags</a></tt><tt class="py-op">(</tt><tt id="link-678" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-678', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'{urn:a}b'</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L528"></a><tt class="py-lineno"> 528</tt>  <tt class="py-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-679" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-679', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TEST&lt;n:a xmlns:n="urn:a"&gt;A&lt;b&gt;B&lt;c xmlns="urn:c"&gt;&lt;/c&gt;CT&lt;/b&gt;BT&lt;/n:a&gt;AT&lt;x&gt;X&lt;a&gt;ABT&lt;c xmlns="urn:x"&gt;&lt;/c&gt;CT&lt;/a&gt;AT&lt;/x&gt;XT&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L529"></a><tt class="py-lineno"> 529</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-680" 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-680', '_writeElement', 'link-367');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-681" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-681', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L530"></a><tt class="py-lineno"> 530</tt>  <tt class="py-line"> </tt>
+<a name="L531"></a><tt class="py-lineno"> 531</tt>  <tt class="py-line">        <tt id="link-682" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-682', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-683" 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-686', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-687" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-687', 'xml', 'link-361');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L519"></a><tt class="py-lineno"> 519</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-688" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-683', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-684" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-684', 'xml', 'link-358');">xml</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L532"></a><tt class="py-lineno"> 532</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-685" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -2061,17 +2057,17 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-688', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-689" class="py-name"><a title="lxml.etree.strip_tags" class="py-name" href="#" onclick="return doclink('link-689', 'strip_tags', 'link-495');">strip_tags</a></tt><tt class="py-op">(</tt><tt id="link-690" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-690', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'{urn:a}*'</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L520"></a><tt class="py-lineno"> 520</tt>  <tt class="py-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-691" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-691', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TESTA&lt;b&gt;B&lt;c xmlns="urn:c"&gt;&lt;/c&gt;CT&lt;/b&gt;BTAT&lt;x&gt;X&lt;a&gt;ABT&lt;c xmlns="urn:x"&gt;&lt;/c&gt;CT&lt;/a&gt;AT&lt;/x&gt;XT&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L521"></a><tt class="py-lineno"> 521</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-692" 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-692', '_writeElement', 'link-370');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-693" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-693', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L522"></a><tt class="py-lineno"> 522</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_strip_tags_and_remove"></a><div id="ETreeOnlyTestCase.test_strip_tags_and_remove-def"><a name="L523"></a><tt class="py-lineno"> 523</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_strip_tags_and_remove-toggle" onclick="return toggle('ETreeOnlyTestCase.test_strip_tags_and_remove');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_and_remove">test_strip_tags_and_remove</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_strip_tags_and_remove-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_strip_tags_and_remove-expanded"><a name="L524"></a><tt class="py-lineno"> 524</tt>  <tt class="py-line">        <tt class="py-comment"># previously crashed</tt> </tt>
-<a name="L525"></a><tt class="py-lineno"> 525</tt>  <tt class="py-line">        <tt id="link-694" class="py-name" targets="Variable lxml.etree.ErrorDomains.HTML=lxml.etree.ErrorDomains-class.html#HTML,Function lxml.etree.HTML()=lxml.etree-module.html#HTML,Variable lxml.html.builder.HTML=lxml.html.builder-module.html#HTML,Variable lxml.tests.test_css.HTML=lxml.tests.test_css-module.html#HTML"><a title="lxml.etree.ErrorDomains.HTML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-685', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-686" class="py-name"><a title="lxml.etree.strip_tags" class="py-name" href="#" onclick="return doclink('link-686', 'strip_tags', 'link-492');">strip_tags</a></tt><tt class="py-op">(</tt><tt id="link-687" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-687', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'{urn:a}*'</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L533"></a><tt class="py-lineno"> 533</tt>  <tt class="py-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-688" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-688', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TESTA&lt;b&gt;B&lt;c xmlns="urn:c"&gt;&lt;/c&gt;CT&lt;/b&gt;BTAT&lt;x&gt;X&lt;a&gt;ABT&lt;c xmlns="urn:x"&gt;&lt;/c&gt;CT&lt;/a&gt;AT&lt;/x&gt;XT&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L534"></a><tt class="py-lineno"> 534</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-689" 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-689', '_writeElement', 'link-367');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-690" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-690', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L535"></a><tt class="py-lineno"> 535</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_strip_tags_and_remove"></a><div id="ETreeOnlyTestCase.test_strip_tags_and_remove-def"><a name="L536"></a><tt class="py-lineno"> 536</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_strip_tags_and_remove-toggle" onclick="return toggle('ETreeOnlyTestCase.test_strip_tags_and_remove');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_and_remove">test_strip_tags_and_remove</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_strip_tags_and_remove-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_strip_tags_and_remove-expanded"><a name="L537"></a><tt class="py-lineno"> 537</tt>  <tt class="py-line">        <tt class="py-comment"># previously crashed</tt> </tt>
+<a name="L538"></a><tt class="py-lineno"> 538</tt>  <tt class="py-line">        <tt id="link-691" class="py-name" targets="Variable lxml.etree.ErrorDomains.HTML=lxml.etree.ErrorDomains-class.html#HTML,Function lxml.etree.HTML()=lxml.etree-module.html#HTML,Variable lxml.html.builder.HTML=lxml.html.builder-module.html#HTML,Variable lxml.tests.test_css.HTML=lxml.tests.test_css-module.html#HTML"><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-694', 'HTML', 'link-694');">HTML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-695" class="py-name"><a title="lxml.etree
+lxml.tests.test_css.HTML" class="py-name" href="#" onclick="return doclink('link-691', 'HTML', 'link-691');">HTML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-692" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -2079,16 +2075,16 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-695', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-696" class="py-name"><a title="lxml.etree.ErrorDomains.HTML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-692', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-693" 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-696', 'HTML', 'link-694');">HTML</a></tt> </tt>
-<a name="L526"></a><tt class="py-lineno"> 526</tt>  <tt class="py-line">        <tt id="link-697" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-697', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-698" class="py-name"><a title="lxml.etree.ErrorDomains.HTML
+lxml.tests.test_css.HTML" class="py-name" href="#" onclick="return doclink('link-693', 'HTML', 'link-691');">HTML</a></tt> </tt>
+<a name="L539"></a><tt class="py-lineno"> 539</tt>  <tt class="py-line">        <tt id="link-694" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-694', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-695" 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-698', 'HTML', 'link-694');">HTML</a></tt><tt class="py-op">(</tt><tt id="link-699" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-699', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;div&gt;&lt;h1&gt;title&lt;/h1&gt; &lt;b&gt;foo&lt;/b&gt; &lt;p&gt;boo&lt;/p&gt;&lt;/div&gt;'</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 class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L527"></a><tt class="py-lineno"> 527</tt>  <tt class="py-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-700" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-700', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;div&gt;&lt;h1&gt;title&lt;/h1&gt; &lt;b&gt;foo&lt;/b&gt; &lt;p&gt;boo&lt;/p&gt;&lt;/div&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L528"></a><tt class="py-lineno"> 528</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-701" class="py-name"><a title="lxml.etree
+lxml.tests.test_css.HTML" class="py-name" href="#" onclick="return doclink('link-695', 'HTML', 'link-691');">HTML</a></tt><tt class="py-op">(</tt><tt id="link-696" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-696', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;div&gt;&lt;h1&gt;title&lt;/h1&gt; &lt;b&gt;foo&lt;/b&gt; &lt;p&gt;boo&lt;/p&gt;&lt;/div&gt;'</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 class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L540"></a><tt class="py-lineno"> 540</tt>  <tt class="py-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-697" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-697', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;div&gt;&lt;h1&gt;title&lt;/h1&gt; &lt;b&gt;foo&lt;/b&gt; &lt;p&gt;boo&lt;/p&gt;&lt;/div&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L541"></a><tt class="py-lineno"> 541</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-698" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -2096,9 +2092,9 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-701', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-702" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-702', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-703" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-703', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L529"></a><tt class="py-lineno"> 529</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-704" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-698', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-699" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-699', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-700" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-700', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L542"></a><tt class="py-lineno"> 542</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-701" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -2106,9 +2102,9 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-704', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-705" class="py-name"><a title="lxml.etree.strip_tags" class="py-name" href="#" onclick="return doclink('link-705', 'strip_tags', 'link-495');">strip_tags</a></tt><tt class="py-op">(</tt><tt id="link-706" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-706', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L530"></a><tt class="py-lineno"> 530</tt>  <tt class="py-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-707" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-707', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;div&gt;&lt;h1&gt;title&lt;/h1&gt; foo &lt;p&gt;boo&lt;/p&gt;&lt;/div&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L531"></a><tt class="py-lineno"> 531</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-708" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-701', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-702" class="py-name"><a title="lxml.etree.strip_tags" class="py-name" href="#" onclick="return doclink('link-702', 'strip_tags', 'link-492');">strip_tags</a></tt><tt class="py-op">(</tt><tt id="link-703" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-703', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L543"></a><tt class="py-lineno"> 543</tt>  <tt class="py-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-704" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-704', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;div&gt;&lt;h1&gt;title&lt;/h1&gt; foo &lt;p&gt;boo&lt;/p&gt;&lt;/div&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L544"></a><tt class="py-lineno"> 544</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-705" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -2116,14 +2112,14 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-708', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-709" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-709', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-710" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-710', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L532"></a><tt class="py-lineno"> 532</tt>  <tt class="py-line">        <tt id="link-711" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-711', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-712" class="py-name" targets="Method lxml.etree._Element.remove()=lxml.etree._Element-class.html#remove,Method lxml.html.CheckboxValues.remove()=lxml.html.CheckboxValues-class.html#remove,Method lxml.html.Classes.remove()=lxml.html.Classes-class.html#remove,Method lxml.html.MultipleSelectOptions.remove()=lxml.html.MultipleSelectOptions-class.html#remove"><a title="lxml.etree._Element.remove
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-705', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-706" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-706', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-707" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-707', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L545"></a><tt class="py-lineno"> 545</tt>  <tt class="py-line">        <tt id="link-708" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-708', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-709" class="py-name" targets="Method lxml.etree._Element.remove()=lxml.etree._Element-class.html#remove,Method lxml.html.CheckboxValues.remove()=lxml.html.CheckboxValues-class.html#remove,Method lxml.html.Classes.remove()=lxml.html.Classes-class.html#remove,Method lxml.html.MultipleSelectOptions.remove()=lxml.html.MultipleSelectOptions-class.html#remove"><a title="lxml.etree._Element.remove
 lxml.html.CheckboxValues.remove
 lxml.html.Classes.remove
-lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-712', 'remove', 'link-712');">remove</a></tt><tt class="py-op">(</tt><tt id="link-713" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-713', 'root', 'link-247');">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="L533"></a><tt class="py-lineno"> 533</tt>  <tt class="py-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-714" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-714', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;div&gt;&lt;p&gt;boo&lt;/p&gt;&lt;/div&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L534"></a><tt class="py-lineno"> 534</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-715" class="py-name"><a title="lxml.etree
+lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-709', 'remove', 'link-709');">remove</a></tt><tt class="py-op">(</tt><tt id="link-710" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-710', 'root', 'link-247');">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="L546"></a><tt class="py-lineno"> 546</tt>  <tt class="py-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-711" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-711', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;div&gt;&lt;p&gt;boo&lt;/p&gt;&lt;/div&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L547"></a><tt class="py-lineno"> 547</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-712" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -2131,15 +2127,15 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-715', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-716" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-716', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-717" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-717', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L535"></a><tt class="py-lineno"> 535</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_pi"></a><div id="ETreeOnlyTestCase.test_pi-def"><a name="L536"></a><tt class="py-lineno"> 536</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_pi-toggle" onclick="return toggle('ETreeOnlyTestCase.test_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_pi">test_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_pi-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_pi-expanded"><a name="L537"></a><tt class="py-lineno"> 537</tt>  <tt class="py-line">        <tt class="py-comment"># lxml.etree separates target and text</tt> </tt>
-<a name="L538"></a><tt class="py-lineno"> 538</tt>  <tt class="py-line">        <tt id="link-718" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-712', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-713" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-713', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-714" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-714', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L548"></a><tt class="py-lineno"> 548</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_pi"></a><div id="ETreeOnlyTestCase.test_pi-def"><a name="L549"></a><tt class="py-lineno"> 549</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_pi-toggle" onclick="return toggle('ETreeOnlyTestCase.test_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_pi">test_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_pi-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_pi-expanded"><a name="L550"></a><tt class="py-lineno"> 550</tt>  <tt class="py-line">        <tt class="py-comment"># lxml.etree separates target and text</tt> </tt>
+<a name="L551"></a><tt class="py-lineno"> 551</tt>  <tt class="py-line">        <tt id="link-715" 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-718', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-719" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-715', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-716" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -2147,11 +2143,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-719', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-720" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-716', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-717" 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-720', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L539"></a><tt class="py-lineno"> 539</tt>  <tt class="py-line">        <tt id="link-721" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-721', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-722" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-717', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L552"></a><tt class="py-lineno"> 552</tt>  <tt class="py-line">        <tt id="link-718" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-718', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-719" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -2159,8 +2155,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-722', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-723" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-723', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
-<a name="L540"></a><tt class="py-lineno"> 540</tt>  <tt class="py-line">        <tt class="py-name">ProcessingInstruction</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-724" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-719', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-720" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-720', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
+<a name="L553"></a><tt class="py-lineno"> 553</tt>  <tt class="py-line">        <tt class="py-name">ProcessingInstruction</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-721" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -2168,25 +2164,25 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-724', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt class="py-name">ProcessingInstruction</tt> </tt>
-<a name="L541"></a><tt class="py-lineno"> 541</tt>  <tt class="py-line"> </tt>
-<a name="L542"></a><tt class="py-lineno"> 542</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-725" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-721', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt class="py-name">ProcessingInstruction</tt> </tt>
+<a name="L554"></a><tt class="py-lineno"> 554</tt>  <tt class="py-line"> </tt>
+<a name="L555"></a><tt class="py-lineno"> 555</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-722" 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-725', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L543"></a><tt class="py-lineno"> 543</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-726" class="py-name" targets="Method lxml.etree._Element.append()=lxml.etree._Element-class.html#append"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-726', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">ProcessingInstruction</tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">,</tt> <tt class="py-string">'some more text'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L544"></a><tt class="py-lineno"> 544</tt>  <tt class="py-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">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-727" class="py-name" targets="Variable lxml.etree._ProcessingInstruction.target=lxml.etree._ProcessingInstruction-class.html#target"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-727', 'target', 'link-727');">target</a></tt><tt class="py-op">,</tt> <tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
-<a name="L545"></a><tt class="py-lineno"> 545</tt>  <tt class="py-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">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-728" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-722', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L556"></a><tt class="py-lineno"> 556</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-723" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-723', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">ProcessingInstruction</tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">,</tt> <tt class="py-string">'some more text'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L557"></a><tt class="py-lineno"> 557</tt>  <tt class="py-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">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-724" class="py-name" targets="Variable lxml.etree._ProcessingInstruction.target=lxml.etree._ProcessingInstruction-class.html#target"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-724', 'target', 'link-724');">target</a></tt><tt class="py-op">,</tt> <tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
+<a name="L558"></a><tt class="py-lineno"> 558</tt>  <tt class="py-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">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-725" 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-728', 'text', 'link-205');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'some more text'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L546"></a><tt class="py-lineno"> 546</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_pi_parse"></a><div id="ETreeOnlyTestCase.test_pi_parse-def"><a name="L547"></a><tt class="py-lineno"> 547</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_pi_parse-toggle" onclick="return toggle('ETreeOnlyTestCase.test_pi_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_pi_parse">test_pi_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_pi_parse-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_pi_parse-expanded"><a name="L548"></a><tt class="py-lineno"> 548</tt>  <tt class="py-line">        <tt id="link-729" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-725', 'text', 'link-205');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'some more text'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L559"></a><tt class="py-lineno"> 559</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_pi_parse"></a><div id="ETreeOnlyTestCase.test_pi_parse-def"><a name="L560"></a><tt class="py-lineno"> 560</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_pi_parse-toggle" onclick="return toggle('ETreeOnlyTestCase.test_pi_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_pi_parse">test_pi_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_pi_parse-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_pi_parse-expanded"><a name="L561"></a><tt class="py-lineno"> 561</tt>  <tt class="py-line">        <tt id="link-726" 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-729', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-730" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-726', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-727" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -2194,26 +2190,26 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-730', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-731" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-727', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-728" 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-731', 'XML', 'link-234');">XML</a></tt> </tt>
-<a name="L549"></a><tt class="py-lineno"> 549</tt>  <tt class="py-line">        <tt id="link-732" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-732', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-733" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-728', 'XML', 'link-234');">XML</a></tt> </tt>
+<a name="L562"></a><tt class="py-lineno"> 562</tt>  <tt class="py-line">        <tt id="link-729" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-729', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-730" 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-733', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-734" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-734', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;test&gt;&lt;?mypi my test ?&gt;&lt;/test&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L550"></a><tt class="py-lineno"> 550</tt>  <tt class="py-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-735" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-735', 'root', 'link-247');">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-736" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-736', 'target', 'link-727');">target</a></tt><tt class="py-op">,</tt> <tt class="py-string">"mypi"</tt><tt class="py-op">)</tt> </tt>
-<a name="L551"></a><tt class="py-lineno"> 551</tt>  <tt class="py-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-737" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-737', 'root', 'link-247');">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-738" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-730', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-731" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-731', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;test&gt;&lt;?mypi my test ?&gt;&lt;/test&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L563"></a><tt class="py-lineno"> 563</tt>  <tt class="py-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-732" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-732', 'root', 'link-247');">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-733" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-733', 'target', 'link-724');">target</a></tt><tt class="py-op">,</tt> <tt class="py-string">"mypi"</tt><tt class="py-op">)</tt> </tt>
+<a name="L564"></a><tt class="py-lineno"> 564</tt>  <tt class="py-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-734" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-734', 'root', 'link-247');">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-735" 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-738', 'text', 'link-205');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"my test "</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L552"></a><tt class="py-lineno"> 552</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_pi_pseudo_attributes_get"></a><div id="ETreeOnlyTestCase.test_pi_pseudo_attributes_get-def"><a name="L553"></a><tt class="py-lineno"> 553</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_pi_pseudo_attributes_get-toggle" onclick="return toggle('ETreeOnlyTestCase.test_pi_pseudo_attributes_get');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_pi_pseudo_attributes_get">test_pi_pseudo_attributes_get</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_pi_pseudo_attributes_get-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_pi_pseudo_attributes_get-expanded"><a name="L554"></a><tt class="py-lineno"> 554</tt>  <tt class="py-line">        <tt id="link-739" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-735', 'text', 'link-205');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"my test "</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L565"></a><tt class="py-lineno"> 565</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_pi_pseudo_attributes_get"></a><div id="ETreeOnlyTestCase.test_pi_pseudo_attributes_get-def"><a name="L566"></a><tt class="py-lineno"> 566</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_pi_pseudo_attributes_get-toggle" onclick="return toggle('ETreeOnlyTestCase.test_pi_pseudo_attributes_get');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_pi_pseudo_attributes_get">test_pi_pseudo_attributes_get</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_pi_pseudo_attributes_get-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_pi_pseudo_attributes_get-expanded"><a name="L567"></a><tt class="py-lineno"> 567</tt>  <tt class="py-line">        <tt id="link-736" 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-739', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-740" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-736', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-737" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -2221,45 +2217,45 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-740', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-741" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-737', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-738" 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-741', 'XML', 'link-234');">XML</a></tt> </tt>
-<a name="L555"></a><tt class="py-lineno"> 555</tt>  <tt class="py-line">        <tt id="link-742" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-742', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-743" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-738', 'XML', 'link-234');">XML</a></tt> </tt>
+<a name="L568"></a><tt class="py-lineno"> 568</tt>  <tt class="py-line">        <tt id="link-739" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-739', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-740" 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-743', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-744" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-744', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;test&gt;&lt;?mypi my='1' test=\" abc \" quotes=\"' '\" only names ?&gt;&lt;/test&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L556"></a><tt class="py-lineno"> 556</tt>  <tt class="py-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-745" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-745', 'root', 'link-247');">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-746" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-746', 'target', 'link-727');">target</a></tt><tt class="py-op">,</tt> <tt class="py-string">"mypi"</tt><tt class="py-op">)</tt> </tt>
-<a name="L557"></a><tt class="py-lineno"> 557</tt>  <tt class="py-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-747" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-747', 'root', 'link-247');">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-748" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-740', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-741" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-741', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;test&gt;&lt;?mypi my='1' test=\" abc \" quotes=\"' '\" only names ?&gt;&lt;/test&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L569"></a><tt class="py-lineno"> 569</tt>  <tt class="py-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-742" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-742', 'root', 'link-247');">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-743" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-743', 'target', 'link-724');">target</a></tt><tt class="py-op">,</tt> <tt class="py-string">"mypi"</tt><tt class="py-op">)</tt> </tt>
+<a name="L570"></a><tt class="py-lineno"> 570</tt>  <tt class="py-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-744" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-744', 'root', 'link-247');">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-745" 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-748', 'get', 'link-270');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'my'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">"1"</tt><tt class="py-op">)</tt> </tt>
-<a name="L558"></a><tt class="py-lineno"> 558</tt>  <tt class="py-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-749" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-749', 'root', 'link-247');">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-750" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-745', 'get', 'link-270');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'my'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">"1"</tt><tt class="py-op">)</tt> </tt>
+<a name="L571"></a><tt class="py-lineno"> 571</tt>  <tt class="py-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-746" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-746', 'root', 'link-247');">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-747" 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-750', 'get', 'link-270');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'test'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">" abc "</tt><tt class="py-op">)</tt> </tt>
-<a name="L559"></a><tt class="py-lineno"> 559</tt>  <tt class="py-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-751" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-751', 'root', 'link-247');">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-752" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-747', 'get', 'link-270');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'test'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">" abc "</tt><tt class="py-op">)</tt> </tt>
+<a name="L572"></a><tt class="py-lineno"> 572</tt>  <tt class="py-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-748" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-748', 'root', 'link-247');">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-749" 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-752', 'get', 'link-270');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'quotes'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">"' '"</tt><tt class="py-op">)</tt> </tt>
-<a name="L560"></a><tt class="py-lineno"> 560</tt>  <tt class="py-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-753" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-753', 'root', 'link-247');">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-754" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-749', 'get', 'link-270');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'quotes'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">"' '"</tt><tt class="py-op">)</tt> </tt>
+<a name="L573"></a><tt class="py-lineno"> 573</tt>  <tt class="py-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-750" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-750', 'root', 'link-247');">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-751" 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-754', 'get', 'link-270');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'only'</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="L561"></a><tt class="py-lineno"> 561</tt>  <tt class="py-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-755" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-755', 'root', 'link-247');">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-756" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-751', 'get', 'link-270');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'only'</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="L574"></a><tt class="py-lineno"> 574</tt>  <tt class="py-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-752" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-752', 'root', 'link-247');">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-753" 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-756', 'get', 'link-270');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'names'</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="L562"></a><tt class="py-lineno"> 562</tt>  <tt class="py-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-757" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-757', 'root', 'link-247');">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-758" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-753', 'get', 'link-270');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'names'</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="L575"></a><tt class="py-lineno"> 575</tt>  <tt class="py-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-754" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-754', 'root', 'link-247');">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-755" 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-758', 'get', 'link-270');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'nope'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L563"></a><tt class="py-lineno"> 563</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_pi_pseudo_attributes_attrib"></a><div id="ETreeOnlyTestCase.test_pi_pseudo_attributes_attrib-def"><a name="L564"></a><tt class="py-lineno"> 564</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_pi_pseudo_attributes_attrib-toggle" onclick="return toggle('ETreeOnlyTestCase.test_pi_pseudo_attributes_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_pi_pseudo_attributes_attrib">test_pi_pseudo_attributes_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_pi_pseudo_attributes_attrib-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_pi_pseudo_attributes_attrib-expanded"><a name="L565"></a><tt class="py-lineno"> 565</tt>  <tt class="py-line">        <tt id="link-759" class="py-name"><a title="lxml.etree.XML
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-755', 'get', 'link-270');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'nope'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L576"></a><tt class="py-lineno"> 576</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_pi_pseudo_attributes_attrib"></a><div id="ETreeOnlyTestCase.test_pi_pseudo_attributes_attrib-def"><a name="L577"></a><tt class="py-lineno"> 577</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_pi_pseudo_attributes_attrib-toggle" onclick="return toggle('ETreeOnlyTestCase.test_pi_pseudo_attributes_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_pi_pseudo_attributes_attrib">test_pi_pseudo_attributes_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_pi_pseudo_attributes_attrib-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_pi_pseudo_attributes_attrib-expanded"><a name="L578"></a><tt class="py-lineno"> 578</tt>  <tt class="py-line">        <tt id="link-756" 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-759', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-760" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-756', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-757" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -2267,61 +2263,61 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-760', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-761" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-757', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-758" 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-761', 'XML', 'link-234');">XML</a></tt> </tt>
-<a name="L566"></a><tt class="py-lineno"> 566</tt>  <tt class="py-line">        <tt id="link-762" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-762', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-763" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-758', 'XML', 'link-234');">XML</a></tt> </tt>
+<a name="L579"></a><tt class="py-lineno"> 579</tt>  <tt class="py-line">        <tt id="link-759" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-759', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-760" 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-763', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-764" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-764', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;test&gt;&lt;?mypi my='1' test=\" abc \" quotes=\"' '\" only names ?&gt;&lt;/test&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L567"></a><tt class="py-lineno"> 567</tt>  <tt class="py-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-765" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-765', 'root', 'link-247');">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-766" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-766', 'target', 'link-727');">target</a></tt><tt class="py-op">,</tt> <tt class="py-string">"mypi"</tt><tt class="py-op">)</tt> </tt>
-<a name="L568"></a><tt class="py-lineno"> 568</tt>  <tt class="py-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-767" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-767', 'root', 'link-247');">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-768" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-760', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-761" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-761', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;test&gt;&lt;?mypi my='1' test=\" abc \" quotes=\"' '\" only names ?&gt;&lt;/test&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L580"></a><tt class="py-lineno"> 580</tt>  <tt class="py-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-762" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-762', 'root', 'link-247');">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-763" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-763', 'target', 'link-724');">target</a></tt><tt class="py-op">,</tt> <tt class="py-string">"mypi"</tt><tt class="py-op">)</tt> </tt>
+<a name="L581"></a><tt class="py-lineno"> 581</tt>  <tt class="py-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-764" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-764', 'root', 'link-247');">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-765" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-768', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'my'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-string">"1"</tt><tt class="py-op">)</tt> </tt>
-<a name="L569"></a><tt class="py-lineno"> 569</tt>  <tt class="py-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-769" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-769', 'root', 'link-247');">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-770" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-765', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'my'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-string">"1"</tt><tt class="py-op">)</tt> </tt>
+<a name="L582"></a><tt class="py-lineno"> 582</tt>  <tt class="py-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-766" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-766', 'root', 'link-247');">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-767" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-770', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'test'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-string">" abc "</tt><tt class="py-op">)</tt> </tt>
-<a name="L570"></a><tt class="py-lineno"> 570</tt>  <tt class="py-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-771" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-771', 'root', 'link-247');">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-772" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-767', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'test'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-string">" abc "</tt><tt class="py-op">)</tt> </tt>
+<a name="L583"></a><tt class="py-lineno"> 583</tt>  <tt class="py-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-768" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-768', 'root', 'link-247');">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-769" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-772', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'quotes'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-string">"' '"</tt><tt class="py-op">)</tt> </tt>
-<a name="L571"></a><tt class="py-lineno"> 571</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 id="link-773" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-773', 'root', 'link-247');">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-774" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-769', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'quotes'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-string">"' '"</tt><tt class="py-op">)</tt> </tt>
+<a name="L584"></a><tt class="py-lineno"> 584</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 id="link-770" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-770', 'root', 'link-247');">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-771" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-774', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-775" class="py-name" targets="Method lxml.etree._Attrib.__getitem__()=lxml.etree._Attrib-class.html#__getitem__,Method lxml.etree._Element.__getitem__()=lxml.etree._Element-class.html#__getitem__,Method lxml.etree._IDDict.__getitem__()=lxml.etree._IDDict-class.html#__getitem__,Method lxml.etree._ListErrorLog.__getitem__()=lxml.etree._ListErrorLog-class.html#__getitem__,Method lxml.html.FieldsDict.__getitem__()=lxml.html.FieldsDict-class.html#__getitem__,Method lxml.html.InputGetter.__getitem__()=lxml.html.InputGetter-class.html#__getitem__,Method lxml.objectify.ObjectifiedElement.__getitem__()=lxml.objectify.ObjectifiedElement-class.html#__getitem__"><a title="lxml.etree._Attrib.__getitem__
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-771', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-772" class="py-name" targets="Method lxml.etree._Attrib.__getitem__()=lxml.etree._Attrib-class.html#__getitem__,Method lxml.etree._Element.__getitem__()=lxml.etree._Element-class.html#__getitem__,Method lxml.etree._IDDict.__getitem__()=lxml.etree._IDDict-class.html#__getitem__,Method lxml.etree._ListErrorLog.__getitem__()=lxml.etree._ListErrorLog-class.html#__getitem__,Method lxml.html.FieldsDict.__getitem__()=lxml.html.FieldsDict-class.html#__getitem__,Method lxml.html.InputGetter.__getitem__()=lxml.html.InputGetter-class.html#__getitem__,Method lxml.objectify.ObjectifiedElement.__getitem__()=lxml.objectify.ObjectifiedElement-class.html#__getitem__"><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-775', '__getitem__', 'link-775');">__getitem__</a></tt><tt class="py-op">,</tt> <tt class="py-string">'only'</tt><tt class="py-op">)</tt> </tt>
-<a name="L572"></a><tt class="py-lineno"> 572</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 id="link-776" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-776', 'root', 'link-247');">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-777" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.objectify.ObjectifiedElement.__getitem__" class="py-name" href="#" onclick="return doclink('link-772', '__getitem__', 'link-772');">__getitem__</a></tt><tt class="py-op">,</tt> <tt class="py-string">'only'</tt><tt class="py-op">)</tt> </tt>
+<a name="L585"></a><tt class="py-lineno"> 585</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 id="link-773" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-773', 'root', 'link-247');">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-774" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-777', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-778" class="py-name"><a title="lxml.etree._Attrib.__getitem__
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-774', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-775" 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-778', '__getitem__', 'link-775');">__getitem__</a></tt><tt class="py-op">,</tt> <tt class="py-string">'names'</tt><tt class="py-op">)</tt> </tt>
-<a name="L573"></a><tt class="py-lineno"> 573</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 id="link-779" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-779', 'root', 'link-247');">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-780" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.objectify.ObjectifiedElement.__getitem__" class="py-name" href="#" onclick="return doclink('link-775', '__getitem__', 'link-772');">__getitem__</a></tt><tt class="py-op">,</tt> <tt class="py-string">'names'</tt><tt class="py-op">)</tt> </tt>
+<a name="L586"></a><tt class="py-lineno"> 586</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 id="link-776" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-776', 'root', 'link-247');">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-777" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-780', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-781" class="py-name"><a title="lxml.etree._Attrib.__getitem__
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-777', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-778" 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-781', '__getitem__', 'link-775');">__getitem__</a></tt><tt class="py-op">,</tt> <tt class="py-string">'nope'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L574"></a><tt class="py-lineno"> 574</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_deepcopy_pi"></a><div id="ETreeOnlyTestCase.test_deepcopy_pi-def"><a name="L575"></a><tt class="py-lineno"> 575</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_deepcopy_pi-toggle" onclick="return toggle('ETreeOnlyTestCase.test_deepcopy_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_deepcopy_pi">test_deepcopy_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_deepcopy_pi-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_deepcopy_pi-expanded"><a name="L576"></a><tt class="py-lineno"> 576</tt>  <tt class="py-line">        <tt class="py-comment"># previously caused a crash</tt> </tt>
-<a name="L577"></a><tt class="py-lineno"> 577</tt>  <tt class="py-line">        <tt class="py-name">ProcessingInstruction</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-782" class="py-name"><a title="lxml.etree
+lxml.objectify.ObjectifiedElement.__getitem__" class="py-name" href="#" onclick="return doclink('link-778', '__getitem__', 'link-772');">__getitem__</a></tt><tt class="py-op">,</tt> <tt class="py-string">'nope'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L587"></a><tt class="py-lineno"> 587</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_deepcopy_pi"></a><div id="ETreeOnlyTestCase.test_deepcopy_pi-def"><a name="L588"></a><tt class="py-lineno"> 588</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_deepcopy_pi-toggle" onclick="return toggle('ETreeOnlyTestCase.test_deepcopy_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_deepcopy_pi">test_deepcopy_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_deepcopy_pi-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_deepcopy_pi-expanded"><a name="L589"></a><tt class="py-lineno"> 589</tt>  <tt class="py-line">        <tt class="py-comment"># previously caused a crash</tt> </tt>
+<a name="L590"></a><tt class="py-lineno"> 590</tt>  <tt class="py-line">        <tt class="py-name">ProcessingInstruction</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-779" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -2329,37 +2325,37 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-782', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt class="py-name">ProcessingInstruction</tt> </tt>
-<a name="L578"></a><tt class="py-lineno"> 578</tt>  <tt class="py-line">         </tt>
-<a name="L579"></a><tt class="py-lineno"> 579</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">ProcessingInstruction</tt><tt class="py-op">(</tt><tt class="py-string">"PI"</tt><tt class="py-op">,</tt> <tt class="py-string">"ONE"</tt><tt class="py-op">)</tt> </tt>
-<a name="L580"></a><tt class="py-lineno"> 580</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-783" class="py-name"><a title="lxml.etree.PyErrorLog.copy
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-779', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt class="py-name">ProcessingInstruction</tt> </tt>
+<a name="L591"></a><tt class="py-lineno"> 591</tt>  <tt class="py-line">         </tt>
+<a name="L592"></a><tt class="py-lineno"> 592</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">ProcessingInstruction</tt><tt class="py-op">(</tt><tt class="py-string">"PI"</tt><tt class="py-op">,</tt> <tt class="py-string">"ONE"</tt><tt class="py-op">)</tt> </tt>
+<a name="L593"></a><tt class="py-lineno"> 593</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-780" 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
-lxml.tests.selftest2.copy" class="py-name" href="#" onclick="return doclink('link-783', 'copy', 'link-1');">copy</a></tt><tt class="py-op">.</tt><tt class="py-name">deepcopy</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L581"></a><tt class="py-lineno"> 581</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-784" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.selftest2.copy" class="py-name" href="#" onclick="return doclink('link-780', 'copy', 'link-1');">copy</a></tt><tt class="py-op">.</tt><tt class="py-name">deepcopy</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L594"></a><tt class="py-lineno"> 594</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-781" 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-784', 'text', 'link-205');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"ANOTHER"</tt> </tt>
-<a name="L582"></a><tt class="py-lineno"> 582</tt>  <tt class="py-line"> </tt>
-<a name="L583"></a><tt class="py-lineno"> 583</tt>  <tt class="py-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">'ONE'</tt><tt class="py-op">,</tt>     <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-785" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-781', 'text', 'link-205');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"ANOTHER"</tt> </tt>
+<a name="L595"></a><tt class="py-lineno"> 595</tt>  <tt class="py-line"> </tt>
+<a name="L596"></a><tt class="py-lineno"> 596</tt>  <tt class="py-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">'ONE'</tt><tt class="py-op">,</tt>     <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-782" 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-785', 'text', 'link-205');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L584"></a><tt class="py-lineno"> 584</tt>  <tt class="py-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">'ANOTHER'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-786" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-782', 'text', 'link-205');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L597"></a><tt class="py-lineno"> 597</tt>  <tt class="py-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">'ANOTHER'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-783" 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-786', 'text', 'link-205');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L585"></a><tt class="py-lineno"> 585</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_deepcopy_elementtree_pi"></a><div id="ETreeOnlyTestCase.test_deepcopy_elementtree_pi-def"><a name="L586"></a><tt class="py-lineno"> 586</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_deepcopy_elementtree_pi-toggle" onclick="return toggle('ETreeOnlyTestCase.test_deepcopy_elementtree_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_deepcopy_elementtree_pi">test_deepcopy_elementtree_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_deepcopy_elementtree_pi-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_deepcopy_elementtree_pi-expanded"><a name="L587"></a><tt class="py-lineno"> 587</tt>  <tt class="py-line">        <tt id="link-787" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-783', 'text', 'link-205');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L598"></a><tt class="py-lineno"> 598</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_deepcopy_elementtree_pi"></a><div id="ETreeOnlyTestCase.test_deepcopy_elementtree_pi-def"><a name="L599"></a><tt class="py-lineno"> 599</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_deepcopy_elementtree_pi-toggle" onclick="return toggle('ETreeOnlyTestCase.test_deepcopy_elementtree_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_deepcopy_elementtree_pi">test_deepcopy_elementtree_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_deepcopy_elementtree_pi-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_deepcopy_elementtree_pi-expanded"><a name="L600"></a><tt class="py-lineno"> 600</tt>  <tt class="py-line">        <tt id="link-784" 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-787', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-788" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-784', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-785" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -2367,12 +2363,12 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-788', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-789" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-785', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-786" 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-789', 'XML', 'link-234');">XML</a></tt> </tt>
-<a name="L588"></a><tt class="py-lineno"> 588</tt>  <tt class="py-line">        <tt id="link-790" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-790', 'tostring', 'link-237');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-791" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-786', 'XML', 'link-234');">XML</a></tt> </tt>
+<a name="L601"></a><tt class="py-lineno"> 601</tt>  <tt class="py-line">        <tt id="link-787" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-787', 'tostring', 'link-237');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-788" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -2380,13 +2376,13 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-791', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-792" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-792', 'tostring', 'link-237');">tostring</a></tt> </tt>
-<a name="L589"></a><tt class="py-lineno"> 589</tt>  <tt class="py-line">        <tt id="link-793" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-793', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-794" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-788', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-789" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-789', 'tostring', 'link-237');">tostring</a></tt> </tt>
+<a name="L602"></a><tt class="py-lineno"> 602</tt>  <tt class="py-line">        <tt id="link-790" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-790', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-791" 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-794', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-795" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-795', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;?mypi my test ?&gt;&lt;test/&gt;&lt;!--comment --&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L590"></a><tt class="py-lineno"> 590</tt>  <tt class="py-line">        <tt class="py-name">tree1</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-796" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-791', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-792" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-792', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;?mypi my test ?&gt;&lt;test/&gt;&lt;!--comment --&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L603"></a><tt class="py-lineno"> 603</tt>  <tt class="py-line">        <tt class="py-name">tree1</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-793" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -2394,38 +2390,38 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-796', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-797" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-793', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-794" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-797', 'ElementTree', 'link-573');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-798" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-798', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L591"></a><tt class="py-lineno"> 591</tt>  <tt class="py-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-799" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-799', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;?mypi my test ?&gt;&lt;test/&gt;&lt;!--comment --&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L592"></a><tt class="py-lineno"> 592</tt>  <tt class="py-line">                          <tt id="link-800" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-800', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree1</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L593"></a><tt class="py-lineno"> 593</tt>  <tt class="py-line"> </tt>
-<a name="L594"></a><tt class="py-lineno"> 594</tt>  <tt class="py-line">        <tt class="py-name">tree2</tt> <tt class="py-op">=</tt> <tt id="link-801" class="py-name"><a title="lxml.etree.PyErrorLog.copy
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-794', 'ElementTree', 'link-570');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-795" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-795', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L604"></a><tt class="py-lineno"> 604</tt>  <tt class="py-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-796" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-796', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;?mypi my test ?&gt;&lt;test/&gt;&lt;!--comment --&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L605"></a><tt class="py-lineno"> 605</tt>  <tt class="py-line">                          <tt id="link-797" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-797', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree1</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L606"></a><tt class="py-lineno"> 606</tt>  <tt class="py-line"> </tt>
+<a name="L607"></a><tt class="py-lineno"> 607</tt>  <tt class="py-line">        <tt class="py-name">tree2</tt> <tt class="py-op">=</tt> <tt id="link-798" 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
-lxml.tests.selftest2.copy" class="py-name" href="#" onclick="return doclink('link-801', 'copy', 'link-1');">copy</a></tt><tt class="py-op">.</tt><tt class="py-name">deepcopy</tt><tt class="py-op">(</tt><tt class="py-name">tree1</tt><tt class="py-op">)</tt> </tt>
-<a name="L595"></a><tt class="py-lineno"> 595</tt>  <tt class="py-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-802" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-802', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;?mypi my test ?&gt;&lt;test/&gt;&lt;!--comment --&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L596"></a><tt class="py-lineno"> 596</tt>  <tt class="py-line">                          <tt id="link-803" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-803', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L597"></a><tt class="py-lineno"> 597</tt>  <tt class="py-line"> </tt>
-<a name="L598"></a><tt class="py-lineno"> 598</tt>  <tt class="py-line">        <tt class="py-name">root2</tt> <tt class="py-op">=</tt> <tt id="link-804" class="py-name"><a title="lxml.etree.PyErrorLog.copy
+lxml.tests.selftest2.copy" class="py-name" href="#" onclick="return doclink('link-798', 'copy', 'link-1');">copy</a></tt><tt class="py-op">.</tt><tt class="py-name">deepcopy</tt><tt class="py-op">(</tt><tt class="py-name">tree1</tt><tt class="py-op">)</tt> </tt>
+<a name="L608"></a><tt class="py-lineno"> 608</tt>  <tt class="py-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-799" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-799', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;?mypi my test ?&gt;&lt;test/&gt;&lt;!--comment --&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L609"></a><tt class="py-lineno"> 609</tt>  <tt class="py-line">                          <tt id="link-800" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-800', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L610"></a><tt class="py-lineno"> 610</tt>  <tt class="py-line"> </tt>
+<a name="L611"></a><tt class="py-lineno"> 611</tt>  <tt class="py-line">        <tt class="py-name">root2</tt> <tt class="py-op">=</tt> <tt id="link-801" 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
-lxml.tests.selftest2.copy" class="py-name" href="#" onclick="return doclink('link-804', 'copy', 'link-1');">copy</a></tt><tt class="py-op">.</tt><tt class="py-name">deepcopy</tt><tt class="py-op">(</tt><tt class="py-name">tree1</tt><tt class="py-op">.</tt><tt id="link-805" class="py-name" targets="Method lxml.etree._ElementTree.getroot()=lxml.etree._ElementTree-class.html#getroot"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-805', 'getroot', 'link-805');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L599"></a><tt class="py-lineno"> 599</tt>  <tt class="py-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-806" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-806', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;test/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L600"></a><tt class="py-lineno"> 600</tt>  <tt class="py-line">                          <tt id="link-807" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-807', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">root2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L601"></a><tt class="py-lineno"> 601</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_deepcopy_elementtree_dtd"></a><div id="ETreeOnlyTestCase.test_deepcopy_elementtree_dtd-def"><a name="L602"></a><tt class="py-lineno"> 602</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_deepcopy_elementtree_dtd-toggle" onclick="return toggle('ETreeOnlyTestCase.test_deepcopy_elementtree_dtd');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_deepcopy_elementtree_dtd">test_deepcopy_elementtree_dtd</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_deepcopy_elementtree_dtd-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_deepcopy_elementtree_dtd-expanded"><a name="L603"></a><tt class="py-lineno"> 603</tt>  <tt class="py-line">        <tt id="link-808" class="py-name"><a title="lxml.etree.XML
+lxml.tests.selftest2.copy" class="py-name" href="#" onclick="return doclink('link-801', 'copy', 'link-1');">copy</a></tt><tt class="py-op">.</tt><tt class="py-name">deepcopy</tt><tt class="py-op">(</tt><tt class="py-name">tree1</tt><tt class="py-op">.</tt><tt id="link-802" class="py-name" targets="Method lxml.etree._ElementTree.getroot()=lxml.etree._ElementTree-class.html#getroot"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-802', 'getroot', 'link-802');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L612"></a><tt class="py-lineno"> 612</tt>  <tt class="py-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-803" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-803', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;test/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L613"></a><tt class="py-lineno"> 613</tt>  <tt class="py-line">                          <tt id="link-804" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-804', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">root2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L614"></a><tt class="py-lineno"> 614</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_deepcopy_elementtree_dtd"></a><div id="ETreeOnlyTestCase.test_deepcopy_elementtree_dtd-def"><a name="L615"></a><tt class="py-lineno"> 615</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_deepcopy_elementtree_dtd-toggle" onclick="return toggle('ETreeOnlyTestCase.test_deepcopy_elementtree_dtd');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_deepcopy_elementtree_dtd">test_deepcopy_elementtree_dtd</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_deepcopy_elementtree_dtd-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_deepcopy_elementtree_dtd-expanded"><a name="L616"></a><tt class="py-lineno"> 616</tt>  <tt class="py-line">        <tt id="link-805" 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-808', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-809" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-805', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-806" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -2433,12 +2429,12 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-809', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-810" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-806', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-807" 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-810', 'XML', 'link-234');">XML</a></tt> </tt>
-<a name="L604"></a><tt class="py-lineno"> 604</tt>  <tt class="py-line">        <tt id="link-811" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-811', 'tostring', 'link-237');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-812" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-807', 'XML', 'link-234');">XML</a></tt> </tt>
+<a name="L617"></a><tt class="py-lineno"> 617</tt>  <tt class="py-line">        <tt id="link-808" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-808', 'tostring', 'link-237');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-809" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -2446,14 +2442,14 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-812', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-813" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-813', 'tostring', 'link-237');">tostring</a></tt> </tt>
-<a name="L605"></a><tt class="py-lineno"> 605</tt>  <tt class="py-line">        <tt id="link-814" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-814', 'xml', 'link-361');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-815" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-815', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE test [\n&lt;!ENTITY entity "tasty"&gt;\n]&gt;\n&lt;test/&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L606"></a><tt class="py-lineno"> 606</tt>  <tt class="py-line">        <tt id="link-816" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-816', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-817" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-809', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-810" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-810', 'tostring', 'link-237');">tostring</a></tt> </tt>
+<a name="L618"></a><tt class="py-lineno"> 618</tt>  <tt class="py-line">        <tt id="link-811" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-811', 'xml', 'link-358');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-812" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-812', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE test [\n&lt;!ENTITY entity "tasty"&gt;\n]&gt;\n&lt;test/&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L619"></a><tt class="py-lineno"> 619</tt>  <tt class="py-line">        <tt id="link-813" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-813', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-814" 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-817', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-818" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-818', 'xml', 'link-361');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L607"></a><tt class="py-lineno"> 607</tt>  <tt class="py-line">        <tt class="py-name">tree1</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-819" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-814', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-815" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-815', 'xml', 'link-358');">xml</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L620"></a><tt class="py-lineno"> 620</tt>  <tt class="py-line">        <tt class="py-name">tree1</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-816" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -2461,36 +2457,36 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-819', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-820" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-816', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-817" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-820', 'ElementTree', 'link-573');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-821" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-821', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L608"></a><tt class="py-lineno"> 608</tt>  <tt class="py-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-822" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-822', 'xml', 'link-361');">xml</a></tt><tt class="py-op">,</tt> <tt id="link-823" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-823', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree1</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L609"></a><tt class="py-lineno"> 609</tt>  <tt class="py-line"> </tt>
-<a name="L610"></a><tt class="py-lineno"> 610</tt>  <tt class="py-line">        <tt class="py-name">tree2</tt> <tt class="py-op">=</tt> <tt id="link-824" class="py-name"><a title="lxml.etree.PyErrorLog.copy
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-817', 'ElementTree', 'link-570');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-818" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-818', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L621"></a><tt class="py-lineno"> 621</tt>  <tt class="py-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-819" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-819', 'xml', 'link-358');">xml</a></tt><tt class="py-op">,</tt> <tt id="link-820" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-820', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree1</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L622"></a><tt class="py-lineno"> 622</tt>  <tt class="py-line"> </tt>
+<a name="L623"></a><tt class="py-lineno"> 623</tt>  <tt class="py-line">        <tt class="py-name">tree2</tt> <tt class="py-op">=</tt> <tt id="link-821" 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
-lxml.tests.selftest2.copy" class="py-name" href="#" onclick="return doclink('link-824', 'copy', 'link-1');">copy</a></tt><tt class="py-op">.</tt><tt class="py-name">deepcopy</tt><tt class="py-op">(</tt><tt class="py-name">tree1</tt><tt class="py-op">)</tt> </tt>
-<a name="L611"></a><tt class="py-lineno"> 611</tt>  <tt class="py-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-825" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-825', 'xml', 'link-361');">xml</a></tt><tt class="py-op">,</tt> <tt id="link-826" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-826', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L612"></a><tt class="py-lineno"> 612</tt>  <tt class="py-line"> </tt>
-<a name="L613"></a><tt class="py-lineno"> 613</tt>  <tt class="py-line">        <tt class="py-name">root2</tt> <tt class="py-op">=</tt> <tt id="link-827" class="py-name"><a title="lxml.etree.PyErrorLog.copy
+lxml.tests.selftest2.copy" class="py-name" href="#" onclick="return doclink('link-821', 'copy', 'link-1');">copy</a></tt><tt class="py-op">.</tt><tt class="py-name">deepcopy</tt><tt class="py-op">(</tt><tt class="py-name">tree1</tt><tt class="py-op">)</tt> </tt>
+<a name="L624"></a><tt class="py-lineno"> 624</tt>  <tt class="py-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-822" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-822', 'xml', 'link-358');">xml</a></tt><tt class="py-op">,</tt> <tt id="link-823" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-823', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L625"></a><tt class="py-lineno"> 625</tt>  <tt class="py-line"> </tt>
+<a name="L626"></a><tt class="py-lineno"> 626</tt>  <tt class="py-line">        <tt class="py-name">root2</tt> <tt class="py-op">=</tt> <tt id="link-824" 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
-lxml.tests.selftest2.copy" class="py-name" href="#" onclick="return doclink('link-827', 'copy', 'link-1');">copy</a></tt><tt class="py-op">.</tt><tt class="py-name">deepcopy</tt><tt class="py-op">(</tt><tt class="py-name">tree1</tt><tt class="py-op">.</tt><tt id="link-828" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-828', 'getroot', 'link-805');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L614"></a><tt class="py-lineno"> 614</tt>  <tt class="py-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-829" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-829', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;test/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L615"></a><tt class="py-lineno"> 615</tt>  <tt class="py-line">                          <tt id="link-830" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-830', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">root2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L616"></a><tt class="py-lineno"> 616</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_deepcopy_pi_dtd"></a><div id="ETreeOnlyTestCase.test_deepcopy_pi_dtd-def"><a name="L617"></a><tt class="py-lineno"> 617</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_deepcopy_pi_dtd-toggle" onclick="return toggle('ETreeOnlyTestCase.test_deepcopy_pi_dtd');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_deepcopy_pi_dtd">test_deepcopy_pi_dtd</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_deepcopy_pi_dtd-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_deepcopy_pi_dtd-expanded"><a name="L618"></a><tt class="py-lineno"> 618</tt>  <tt class="py-line">        <tt id="link-831" class="py-name"><a title="lxml.etree.XML
+lxml.tests.selftest2.copy" class="py-name" href="#" onclick="return doclink('link-824', 'copy', 'link-1');">copy</a></tt><tt class="py-op">.</tt><tt class="py-name">deepcopy</tt><tt class="py-op">(</tt><tt class="py-name">tree1</tt><tt class="py-op">.</tt><tt id="link-825" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-825', 'getroot', 'link-802');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L627"></a><tt class="py-lineno"> 627</tt>  <tt class="py-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-826" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-826', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;test/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L628"></a><tt class="py-lineno"> 628</tt>  <tt class="py-line">                          <tt id="link-827" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-827', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">root2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L629"></a><tt class="py-lineno"> 629</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_deepcopy_pi_dtd"></a><div id="ETreeOnlyTestCase.test_deepcopy_pi_dtd-def"><a name="L630"></a><tt class="py-lineno"> 630</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_deepcopy_pi_dtd-toggle" onclick="return toggle('ETreeOnlyTestCase.test_deepcopy_pi_dtd');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_deepcopy_pi_dtd">test_deepcopy_pi_dtd</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_deepcopy_pi_dtd-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_deepcopy_pi_dtd-expanded"><a name="L631"></a><tt class="py-lineno"> 631</tt>  <tt class="py-line">        <tt id="link-828" 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-831', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-832" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-828', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-829" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -2498,12 +2494,12 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-832', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-833" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-829', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-830" 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-833', 'XML', 'link-234');">XML</a></tt> </tt>
-<a name="L619"></a><tt class="py-lineno"> 619</tt>  <tt class="py-line">        <tt id="link-834" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-834', 'tostring', 'link-237');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-835" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-830', 'XML', 'link-234');">XML</a></tt> </tt>
+<a name="L632"></a><tt class="py-lineno"> 632</tt>  <tt class="py-line">        <tt id="link-831" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-831', 'tostring', 'link-237');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-832" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -2511,14 +2507,14 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-835', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-836" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-836', 'tostring', 'link-237');">tostring</a></tt> </tt>
-<a name="L620"></a><tt class="py-lineno"> 620</tt>  <tt class="py-line">        <tt id="link-837" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-837', 'xml', 'link-361');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-838" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-838', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!-- comment --&gt;&lt;!DOCTYPE test [\n&lt;!ENTITY entity "tasty"&gt;\n]&gt;\n&lt;test/&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L621"></a><tt class="py-lineno"> 621</tt>  <tt class="py-line">        <tt id="link-839" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-839', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-840" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-832', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-833" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-833', 'tostring', 'link-237');">tostring</a></tt> </tt>
+<a name="L633"></a><tt class="py-lineno"> 633</tt>  <tt class="py-line">        <tt id="link-834" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-834', 'xml', 'link-358');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-835" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-835', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!-- comment --&gt;&lt;!DOCTYPE test [\n&lt;!ENTITY entity "tasty"&gt;\n]&gt;\n&lt;test/&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L634"></a><tt class="py-lineno"> 634</tt>  <tt class="py-line">        <tt id="link-836" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-836', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-837" 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-840', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-841" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-841', 'xml', 'link-361');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L622"></a><tt class="py-lineno"> 622</tt>  <tt class="py-line">        <tt class="py-name">tree1</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-842" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-837', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-838" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-838', 'xml', 'link-358');">xml</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L635"></a><tt class="py-lineno"> 635</tt>  <tt class="py-line">        <tt class="py-name">tree1</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-839" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -2526,26 +2522,26 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-842', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-843" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-839', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-840" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-843', 'ElementTree', 'link-573');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-844" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-844', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L623"></a><tt class="py-lineno"> 623</tt>  <tt class="py-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-845" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-845', 'xml', 'link-361');">xml</a></tt><tt class="py-op">,</tt> <tt id="link-846" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-846', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree1</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L624"></a><tt class="py-lineno"> 624</tt>  <tt class="py-line"> </tt>
-<a name="L625"></a><tt class="py-lineno"> 625</tt>  <tt class="py-line">        <tt class="py-name">tree2</tt> <tt class="py-op">=</tt> <tt id="link-847" class="py-name"><a title="lxml.etree.PyErrorLog.copy
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-840', 'ElementTree', 'link-570');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-841" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-841', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L636"></a><tt class="py-lineno"> 636</tt>  <tt class="py-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-842" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-842', 'xml', 'link-358');">xml</a></tt><tt class="py-op">,</tt> <tt id="link-843" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-843', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree1</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L637"></a><tt class="py-lineno"> 637</tt>  <tt class="py-line"> </tt>
+<a name="L638"></a><tt class="py-lineno"> 638</tt>  <tt class="py-line">        <tt class="py-name">tree2</tt> <tt class="py-op">=</tt> <tt id="link-844" 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
-lxml.tests.selftest2.copy" class="py-name" href="#" onclick="return doclink('link-847', 'copy', 'link-1');">copy</a></tt><tt class="py-op">.</tt><tt class="py-name">deepcopy</tt><tt class="py-op">(</tt><tt class="py-name">tree1</tt><tt class="py-op">)</tt> </tt>
-<a name="L626"></a><tt class="py-lineno"> 626</tt>  <tt class="py-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-848" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-848', 'xml', 'link-361');">xml</a></tt><tt class="py-op">,</tt> <tt id="link-849" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-849', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L627"></a><tt class="py-lineno"> 627</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_parse_remove_comments"></a><div id="ETreeOnlyTestCase.test_parse_remove_comments-def"><a name="L628"></a><tt class="py-lineno"> 628</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parse_remove_comments-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parse_remove_comments');">-</a><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_remove_comments">test_parse_remove_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="ETreeOnlyTestCase.test_parse_remove_comments-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parse_remove_comments-expanded"><a name="L629"></a><tt class="py-lineno"> 629</tt>  <tt class="py-line">        <tt id="link-850" class="py-name" targets="Function lxml.etree.fromstring()=lxml.etree-module.html#fromstring,Function lxml.html.html5parser.fromstring()=lxml.html.html5parser-module.html#fromstring,Function lxml.html.soupparser.fromstring()=lxml.html.soupparser-module.html#fromstring,Function lxml.objectify.fromstring()=lxml.objectify-module.html#fromstring"><a title="lxml.etree.fromstring
+lxml.tests.selftest2.copy" class="py-name" href="#" onclick="return doclink('link-844', 'copy', 'link-1');">copy</a></tt><tt class="py-op">.</tt><tt class="py-name">deepcopy</tt><tt class="py-op">(</tt><tt class="py-name">tree1</tt><tt class="py-op">)</tt> </tt>
+<a name="L639"></a><tt class="py-lineno"> 639</tt>  <tt class="py-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-845" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-845', 'xml', 'link-358');">xml</a></tt><tt class="py-op">,</tt> <tt id="link-846" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-846', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L640"></a><tt class="py-lineno"> 640</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_parse_remove_comments"></a><div id="ETreeOnlyTestCase.test_parse_remove_comments-def"><a name="L641"></a><tt class="py-lineno"> 641</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parse_remove_comments-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parse_remove_comments');">-</a><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_remove_comments">test_parse_remove_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="ETreeOnlyTestCase.test_parse_remove_comments-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parse_remove_comments-expanded"><a name="L642"></a><tt class="py-lineno"> 642</tt>  <tt class="py-line">        <tt id="link-847" class="py-name" targets="Function lxml.etree.fromstring()=lxml.etree-module.html#fromstring,Function lxml.html.html5parser.fromstring()=lxml.html.html5parser-module.html#fromstring,Function lxml.html.soupparser.fromstring()=lxml.html.soupparser-module.html#fromstring,Function lxml.objectify.fromstring()=lxml.objectify-module.html#fromstring"><a title="lxml.etree.fromstring
 lxml.html.html5parser.fromstring
 lxml.html.soupparser.fromstring
-lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-850', 'fromstring', 'link-850');">fromstring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-851" class="py-name"><a title="lxml.etree
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-847', 'fromstring', 'link-847');">fromstring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-848" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -2553,12 +2549,12 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-851', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-852" class="py-name"><a title="lxml.etree.fromstring
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-848', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-849" 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-852', 'fromstring', 'link-850');">fromstring</a></tt> </tt>
-<a name="L630"></a><tt class="py-lineno"> 630</tt>  <tt class="py-line">        <tt id="link-853" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-853', 'tostring', 'link-237');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-854" class="py-name"><a title="lxml.etree
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-849', 'fromstring', 'link-847');">fromstring</a></tt> </tt>
+<a name="L643"></a><tt class="py-lineno"> 643</tt>  <tt class="py-line">        <tt id="link-850" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-850', 'tostring', 'link-237');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-851" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -2566,11 +2562,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-854', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-855" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-855', 'tostring', 'link-237');">tostring</a></tt> </tt>
-<a name="L631"></a><tt class="py-lineno"> 631</tt>  <tt class="py-line">        <tt id="link-856" class="py-name" targets="Class lxml.etree.XMLParser=lxml.etree.XMLParser-class.html,Method lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser()=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#XMLParser,Class xml.etree.ElementTree.XMLParser=xml.etree.ElementTree.XMLParser-class.html"><a title="lxml.etree.XMLParser
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-851', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-852" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-852', 'tostring', 'link-237');">tostring</a></tt> </tt>
+<a name="L644"></a><tt class="py-lineno"> 644</tt>  <tt class="py-line">        <tt id="link-853" class="py-name" targets="Class lxml.etree.XMLParser=lxml.etree.XMLParser-class.html,Method lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser()=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#XMLParser,Class xml.etree.ElementTree.XMLParser=xml.etree.ElementTree.XMLParser-class.html"><a title="lxml.etree.XMLParser
 lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-856', 'XMLParser', 'link-856');">XMLParser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-857" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-853', 'XMLParser', 'link-853');">XMLParser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-854" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -2578,33 +2574,33 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-857', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-858" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-854', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-855" 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-858', 'XMLParser', 'link-856');">XMLParser</a></tt> </tt>
-<a name="L632"></a><tt class="py-lineno"> 632</tt>  <tt class="py-line"> </tt>
-<a name="L633"></a><tt class="py-lineno"> 633</tt>  <tt class="py-line">        <tt id="link-859" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-859', 'xml', 'link-361');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-860" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-860', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;!--A--&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>
-<a name="L634"></a><tt class="py-lineno"> 634</tt>  <tt class="py-line">        <tt id="link-861" class="py-name" targets="Variable lxml.etree._ElementTree.parser=lxml.etree._ElementTree-class.html#parser,Variable lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser=lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#parser"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-861', 'parser', 'link-861');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-862" class="py-name"><a title="lxml.etree.XMLParser
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-855', 'XMLParser', 'link-853');">XMLParser</a></tt> </tt>
+<a name="L645"></a><tt class="py-lineno"> 645</tt>  <tt class="py-line"> </tt>
+<a name="L646"></a><tt class="py-lineno"> 646</tt>  <tt class="py-line">        <tt id="link-856" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-856', 'xml', 'link-358');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-857" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-857', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;!--A--&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>
+<a name="L647"></a><tt class="py-lineno"> 647</tt>  <tt class="py-line">        <tt id="link-858" class="py-name" targets="Variable lxml.etree._ElementTree.parser=lxml.etree._ElementTree-class.html#parser,Variable lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser=lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#parser"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-858', 'parser', 'link-858');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-859" 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-862', 'XMLParser', 'link-856');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">remove_comments</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L635"></a><tt class="py-lineno"> 635</tt>  <tt class="py-line">        <tt id="link-863" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-863', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-864" class="py-name"><a title="lxml.etree.fromstring
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-859', 'XMLParser', 'link-853');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">remove_comments</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L648"></a><tt class="py-lineno"> 648</tt>  <tt class="py-line">        <tt id="link-860" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-860', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-861" 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-864', 'fromstring', 'link-850');">fromstring</a></tt><tt class="py-op">(</tt><tt id="link-865" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-865', 'xml', 'link-361');">xml</a></tt><tt class="py-op">,</tt> <tt id="link-866" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-866', 'parser', 'link-861');">parser</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L636"></a><tt class="py-lineno"> 636</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L637"></a><tt class="py-lineno"> 637</tt>  <tt class="py-line">            <tt id="link-867" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-867', '_bytes', 'link-18');">_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;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L638"></a><tt class="py-lineno"> 638</tt>  <tt class="py-line">            <tt id="link-868" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-868', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-869" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-869', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L639"></a><tt class="py-lineno"> 639</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_parse_remove_pis"></a><div id="ETreeOnlyTestCase.test_parse_remove_pis-def"><a name="L640"></a><tt class="py-lineno"> 640</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parse_remove_pis-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parse_remove_pis');">-</a><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_remove_pis">test_parse_remove_pis</a><tt class="py-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_remove_pis-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parse_remove_pis-expanded"><a name="L641"></a><tt class="py-lineno"> 641</tt>  <tt class="py-line">        <tt id="link-870" class="py-name" targets="Method lxml.etree._ElementTree.parse()=lxml.etree._ElementTree-class.html#parse,Function lxml.etree.parse()=lxml.etree-module.html#parse,Function lxml.html.ElementSoup.parse()=lxml.html.ElementSoup-module.html#parse,Function lxml.html.html5parser.parse()=lxml.html.html5parser-module.html#parse,Function lxml.html.soupparser.parse()=lxml.html.soupparser-module.html#parse,Function lxml.objectify.parse()=lxml.objectify-module.html#parse,Method lxml.tests.common_imports.HelperTestCase.parse()=lxml.tests.common_imports.HelperTestCase-class.html#parse"><a title="lxml.etree._ElementTree.parse
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-861', 'fromstring', 'link-847');">fromstring</a></tt><tt class="py-op">(</tt><tt id="link-862" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-862', 'xml', 'link-358');">xml</a></tt><tt class="py-op">,</tt> <tt id="link-863" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-863', 'parser', 'link-858');">parser</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L649"></a><tt class="py-lineno"> 649</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L650"></a><tt class="py-lineno"> 650</tt>  <tt class="py-line">            <tt id="link-864" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-864', '_bytes', 'link-18');">_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;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L651"></a><tt class="py-lineno"> 651</tt>  <tt class="py-line">            <tt id="link-865" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-865', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-866" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-866', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L652"></a><tt class="py-lineno"> 652</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_parse_remove_pis"></a><div id="ETreeOnlyTestCase.test_parse_remove_pis-def"><a name="L653"></a><tt class="py-lineno"> 653</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parse_remove_pis-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parse_remove_pis');">-</a><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_remove_pis">test_parse_remove_pis</a><tt class="py-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_remove_pis-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parse_remove_pis-expanded"><a name="L654"></a><tt class="py-lineno"> 654</tt>  <tt class="py-line">        <tt id="link-867" class="py-name" targets="Method lxml.etree._ElementTree.parse()=lxml.etree._ElementTree-class.html#parse,Function lxml.etree.parse()=lxml.etree-module.html#parse,Function lxml.html.ElementSoup.parse()=lxml.html.ElementSoup-module.html#parse,Function lxml.html.html5parser.parse()=lxml.html.html5parser-module.html#parse,Function lxml.html.soupparser.parse()=lxml.html.soupparser-module.html#parse,Function lxml.objectify.parse()=lxml.objectify-module.html#parse,Method lxml.tests.common_imports.HelperTestCase.parse()=lxml.tests.common_imports.HelperTestCase-class.html#parse"><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-870', 'parse', 'link-870');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-871" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-867', 'parse', 'link-867');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-868" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -2612,15 +2608,15 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-871', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-872" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-868', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-869" 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-872', 'parse', 'link-870');">parse</a></tt> </tt>
-<a name="L642"></a><tt class="py-lineno"> 642</tt>  <tt class="py-line">        <tt id="link-873" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-873', 'tostring', 'link-237');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-874" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-869', 'parse', 'link-867');">parse</a></tt> </tt>
+<a name="L655"></a><tt class="py-lineno"> 655</tt>  <tt class="py-line">        <tt id="link-870" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-870', 'tostring', 'link-237');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-871" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -2628,11 +2624,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-874', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-875" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-875', 'tostring', 'link-237');">tostring</a></tt> </tt>
-<a name="L643"></a><tt class="py-lineno"> 643</tt>  <tt class="py-line">        <tt id="link-876" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-871', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-872" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-872', 'tostring', 'link-237');">tostring</a></tt> </tt>
+<a name="L656"></a><tt class="py-lineno"> 656</tt>  <tt class="py-line">        <tt id="link-873" 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-876', 'XMLParser', 'link-856');">XMLParser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-877" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-873', 'XMLParser', 'link-853');">XMLParser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-874" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -2640,51 +2636,51 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-877', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-878" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-874', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-875" 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-878', 'XMLParser', 'link-856');">XMLParser</a></tt> </tt>
-<a name="L644"></a><tt class="py-lineno"> 644</tt>  <tt class="py-line"> </tt>
-<a name="L645"></a><tt class="py-lineno"> 645</tt>  <tt class="py-line">        <tt id="link-879" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-879', 'xml', 'link-361');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-880" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-880', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;?test?&gt;&lt;a&gt;&lt;?A?&gt;&lt;b&gt;&lt;?B?&gt;&lt;c/&gt;&lt;/b&gt;&lt;?C?&gt;&lt;/a&gt;&lt;?tail?&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L646"></a><tt class="py-lineno"> 646</tt>  <tt class="py-line"> </tt>
-<a name="L647"></a><tt class="py-lineno"> 647</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-881" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-881', 'xml', 'link-361');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L648"></a><tt class="py-lineno"> 648</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-882" class="py-name"><a title="lxml.etree._ElementTree.parse
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-875', 'XMLParser', 'link-853');">XMLParser</a></tt> </tt>
+<a name="L657"></a><tt class="py-lineno"> 657</tt>  <tt class="py-line"> </tt>
+<a name="L658"></a><tt class="py-lineno"> 658</tt>  <tt class="py-line">        <tt id="link-876" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-876', 'xml', 'link-358');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-877" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-877', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;?test?&gt;&lt;a&gt;&lt;?A?&gt;&lt;b&gt;&lt;?B?&gt;&lt;c/&gt;&lt;/b&gt;&lt;?C?&gt;&lt;/a&gt;&lt;?tail?&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L659"></a><tt class="py-lineno"> 659</tt>  <tt class="py-line"> </tt>
+<a name="L660"></a><tt class="py-lineno"> 660</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-878" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-878', 'xml', 'link-358');">xml</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L661"></a><tt class="py-lineno"> 661</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-879" 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-882', 'parse', 'link-870');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L649"></a><tt class="py-lineno"> 649</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L650"></a><tt class="py-lineno"> 650</tt>  <tt class="py-line">            <tt id="link-883" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-883', 'xml', 'link-361');">xml</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L651"></a><tt class="py-lineno"> 651</tt>  <tt class="py-line">            <tt id="link-884" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-884', 'tostring', 'link-237');">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>
-<a name="L652"></a><tt class="py-lineno"> 652</tt>  <tt class="py-line"> </tt>
-<a name="L653"></a><tt class="py-lineno"> 653</tt>  <tt class="py-line">        <tt id="link-885" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-885', 'parser', 'link-861');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-886" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-879', 'parse', 'link-867');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L662"></a><tt class="py-lineno"> 662</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L663"></a><tt class="py-lineno"> 663</tt>  <tt class="py-line">            <tt id="link-880" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-880', 'xml', 'link-358');">xml</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L664"></a><tt class="py-lineno"> 664</tt>  <tt class="py-line">            <tt id="link-881" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-881', 'tostring', 'link-237');">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>
+<a name="L665"></a><tt class="py-lineno"> 665</tt>  <tt class="py-line"> </tt>
+<a name="L666"></a><tt class="py-lineno"> 666</tt>  <tt class="py-line">        <tt id="link-882" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-882', 'parser', 'link-858');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-883" 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-886', 'XMLParser', 'link-856');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">remove_pis</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L654"></a><tt class="py-lineno"> 654</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-887" class="py-name"><a title="lxml.etree._ElementTree.parse
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-883', 'XMLParser', 'link-853');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">remove_pis</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L667"></a><tt class="py-lineno"> 667</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-884" 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-887', 'parse', 'link-870');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-888" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-888', 'parser', 'link-861');">parser</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L655"></a><tt class="py-lineno"> 655</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L656"></a><tt class="py-lineno"> 656</tt>  <tt class="py-line">            <tt id="link-889" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-889', '_bytes', 'link-18');">_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;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L657"></a><tt class="py-lineno"> 657</tt>  <tt class="py-line">            <tt id="link-890" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-890', 'tostring', 'link-237');">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="L658"></a><tt class="py-lineno"> 658</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_parse_parser_type_error"></a><div id="ETreeOnlyTestCase.test_parse_parser_type_error-def"><a name="L659"></a><tt class="py-lineno"> 659</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parse_parser_type_error-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parse_parser_type_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_parse_parser_type_error">test_parse_parser_type_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_parse_parser_type_error-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parse_parser_type_error-expanded"><a name="L660"></a><tt class="py-lineno"> 660</tt>  <tt class="py-line">        <tt class="py-comment"># ET raises IOError only</tt> </tt>
-<a name="L661"></a><tt class="py-lineno"> 661</tt>  <tt class="py-line">        <tt id="link-891" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-884', 'parse', 'link-867');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-885" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-885', 'parser', 'link-858');">parser</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L668"></a><tt class="py-lineno"> 668</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L669"></a><tt class="py-lineno"> 669</tt>  <tt class="py-line">            <tt id="link-886" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-886', '_bytes', 'link-18');">_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;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L670"></a><tt class="py-lineno"> 670</tt>  <tt class="py-line">            <tt id="link-887" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-887', 'tostring', 'link-237');">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="L671"></a><tt class="py-lineno"> 671</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_parse_parser_type_error"></a><div id="ETreeOnlyTestCase.test_parse_parser_type_error-def"><a name="L672"></a><tt class="py-lineno"> 672</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parse_parser_type_error-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parse_parser_type_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_parse_parser_type_error">test_parse_parser_type_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_parse_parser_type_error-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parse_parser_type_error-expanded"><a name="L673"></a><tt class="py-lineno"> 673</tt>  <tt class="py-line">        <tt class="py-comment"># ET raises IOError only</tt> </tt>
+<a name="L674"></a><tt class="py-lineno"> 674</tt>  <tt class="py-line">        <tt id="link-888" 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-891', 'parse', 'link-870');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-892" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-888', 'parse', 'link-867');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-889" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -2692,25 +2688,25 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-892', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-893" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-889', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-890" 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-893', 'parse', 'link-870');">parse</a></tt> </tt>
-<a name="L662"></a><tt class="py-lineno"> 662</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 id="link-894" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-890', 'parse', 'link-867');">parse</a></tt> </tt>
+<a name="L675"></a><tt class="py-lineno"> 675</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 id="link-891" 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-894', 'parse', 'link-870');">parse</a></tt><tt class="py-op">,</tt> <tt class="py-string">'notthere.xml'</tt><tt class="py-op">,</tt> <tt class="py-name">object</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L663"></a><tt class="py-lineno"> 663</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterparse_tree_comments"></a><div id="ETreeOnlyTestCase.test_iterparse_tree_comments-def"><a name="L664"></a><tt class="py-lineno"> 664</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_tree_comments-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_tree_comments');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tree_comments">test_iterparse_tree_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="ETreeOnlyTestCase.test_iterparse_tree_comments-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_tree_comments-expanded"><a name="L665"></a><tt class="py-lineno"> 665</tt>  <tt class="py-line">        <tt class="py-comment"># ET removes comments</tt> </tt>
-<a name="L666"></a><tt class="py-lineno"> 666</tt>  <tt class="py-line">        <tt id="link-895" class="py-name" targets="Class lxml.etree.iterparse=lxml.etree.iterparse-class.html,Function lxml.tests.selftest.iterparse()=lxml.tests.selftest-module.html#iterparse"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-895', 'iterparse', 'link-895');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-896" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-891', 'parse', 'link-867');">parse</a></tt><tt class="py-op">,</tt> <tt class="py-string">'notthere.xml'</tt><tt class="py-op">,</tt> <tt class="py-name">object</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L676"></a><tt class="py-lineno"> 676</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterparse_tree_comments"></a><div id="ETreeOnlyTestCase.test_iterparse_tree_comments-def"><a name="L677"></a><tt class="py-lineno"> 677</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_tree_comments-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_tree_comments');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tree_comments">test_iterparse_tree_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="ETreeOnlyTestCase.test_iterparse_tree_comments-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_tree_comments-expanded"><a name="L678"></a><tt class="py-lineno"> 678</tt>  <tt class="py-line">        <tt class="py-comment"># ET removes comments</tt> </tt>
+<a name="L679"></a><tt class="py-lineno"> 679</tt>  <tt class="py-line">        <tt id="link-892" class="py-name" targets="Class lxml.etree.iterparse=lxml.etree.iterparse-class.html,Function lxml.tests.selftest.iterparse()=lxml.tests.selftest-module.html#iterparse"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-892', 'iterparse', 'link-892');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-893" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -2718,10 +2714,10 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-896', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-897" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-897', 'iterparse', 'link-895');">iterparse</a></tt> </tt>
-<a name="L667"></a><tt class="py-lineno"> 667</tt>  <tt class="py-line">        <tt id="link-898" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-898', 'tostring', 'link-237');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-899" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-893', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-894" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-894', 'iterparse', 'link-892');">iterparse</a></tt> </tt>
+<a name="L680"></a><tt class="py-lineno"> 680</tt>  <tt class="py-line">        <tt id="link-895" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-895', 'tostring', 'link-237');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-896" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -2729,23 +2725,23 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-899', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-900" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-900', 'tostring', 'link-237');">tostring</a></tt> </tt>
-<a name="L668"></a><tt class="py-lineno"> 668</tt>  <tt class="py-line"> </tt>
-<a name="L669"></a><tt class="py-lineno"> 669</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;!--A--&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>
-<a name="L670"></a><tt class="py-lineno"> 670</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-901" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-901', 'iterparse', 'link-895');">iterparse</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="L671"></a><tt class="py-lineno"> 671</tt>  <tt class="py-line">        <tt id="link-902" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-902', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">events</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-number">1</tt><tt class="py-op">]</tt> </tt>
-<a name="L672"></a><tt class="py-lineno"> 672</tt>  <tt class="py-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">3</tt><tt class="py-op">,</tt> <tt class="py-name">len</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="L673"></a><tt class="py-lineno"> 673</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L674"></a><tt class="py-lineno"> 674</tt>  <tt class="py-line">            <tt id="link-903" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-903', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;!--A--&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>
-<a name="L675"></a><tt class="py-lineno"> 675</tt>  <tt class="py-line">            <tt id="link-904" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-904', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-905" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-905', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L676"></a><tt class="py-lineno"> 676</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterparse_comments"></a><div id="ETreeOnlyTestCase.test_iterparse_comments-def"><a name="L677"></a><tt class="py-lineno"> 677</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_comments-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_comments');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_comments">test_iterparse_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="ETreeOnlyTestCase.test_iterparse_comments-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_comments-expanded"><a name="L678"></a><tt class="py-lineno"> 678</tt>  <tt class="py-line">        <tt class="py-comment"># ET removes comments</tt> </tt>
-<a name="L679"></a><tt class="py-lineno"> 679</tt>  <tt class="py-line">        <tt id="link-906" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-906', 'iterparse', 'link-895');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-907" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-896', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-897" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-897', 'tostring', 'link-237');">tostring</a></tt> </tt>
+<a name="L681"></a><tt class="py-lineno"> 681</tt>  <tt class="py-line"> </tt>
+<a name="L682"></a><tt class="py-lineno"> 682</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;!--A--&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>
+<a name="L683"></a><tt class="py-lineno"> 683</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-898" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-898', 'iterparse', 'link-892');">iterparse</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="L684"></a><tt class="py-lineno"> 684</tt>  <tt class="py-line">        <tt id="link-899" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-899', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">events</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-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L685"></a><tt class="py-lineno"> 685</tt>  <tt class="py-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">3</tt><tt class="py-op">,</tt> <tt class="py-name">len</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="L686"></a><tt class="py-lineno"> 686</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L687"></a><tt class="py-lineno"> 687</tt>  <tt class="py-line">            <tt id="link-900" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-900', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;!--A--&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>
+<a name="L688"></a><tt class="py-lineno"> 688</tt>  <tt class="py-line">            <tt id="link-901" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-901', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-902" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-902', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L689"></a><tt class="py-lineno"> 689</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterparse_comments"></a><div id="ETreeOnlyTestCase.test_iterparse_comments-def"><a name="L690"></a><tt class="py-lineno"> 690</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_comments-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_comments');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_comments">test_iterparse_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="ETreeOnlyTestCase.test_iterparse_comments-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_comments-expanded"><a name="L691"></a><tt class="py-lineno"> 691</tt>  <tt class="py-line">        <tt class="py-comment"># ET removes comments</tt> </tt>
+<a name="L692"></a><tt class="py-lineno"> 692</tt>  <tt class="py-line">        <tt id="link-903" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-903', 'iterparse', 'link-892');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-904" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -2753,10 +2749,10 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-907', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-908" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-908', 'iterparse', 'link-895');">iterparse</a></tt> </tt>
-<a name="L680"></a><tt class="py-lineno"> 680</tt>  <tt class="py-line">        <tt id="link-909" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-909', 'tostring', 'link-237');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-910" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-904', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-905" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-905', 'iterparse', 'link-892');">iterparse</a></tt> </tt>
+<a name="L693"></a><tt class="py-lineno"> 693</tt>  <tt class="py-line">        <tt id="link-906" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-906', 'tostring', 'link-237');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-907" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -2764,43 +2760,43 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-910', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-911" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-911', 'tostring', 'link-237');">tostring</a></tt> </tt>
-<a name="L681"></a><tt class="py-lineno"> 681</tt>  <tt class="py-line"> </tt>
-<a name="L682"></a><tt class="py-lineno"> 682</tt>  <tt class="py-line">        <tt class="py-keyword">def</tt> <tt class="py-def-name">name</tt><tt class="py-op">(</tt><tt class="py-param">event</tt><tt class="py-op">,</tt> <tt class="py-param">el</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L683"></a><tt class="py-lineno"> 683</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">event</tt> <tt class="py-op">==</tt> <tt class="py-string">'comment'</tt><tt class="py-op">:</tt> </tt>
-<a name="L684"></a><tt class="py-lineno"> 684</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-912" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-907', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-908" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-908', 'tostring', 'link-237');">tostring</a></tt> </tt>
+<a name="L694"></a><tt class="py-lineno"> 694</tt>  <tt class="py-line"> </tt>
+<a name="L695"></a><tt class="py-lineno"> 695</tt>  <tt class="py-line">        <tt class="py-keyword">def</tt> <tt class="py-def-name">name</tt><tt class="py-op">(</tt><tt class="py-param">event</tt><tt class="py-op">,</tt> <tt class="py-param">el</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L696"></a><tt class="py-lineno"> 696</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">event</tt> <tt class="py-op">==</tt> <tt class="py-string">'comment'</tt><tt class="py-op">:</tt> </tt>
+<a name="L697"></a><tt class="py-lineno"> 697</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-909" 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-912', 'text', 'link-205');">text</a></tt> </tt>
-<a name="L685"></a><tt class="py-lineno"> 685</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L686"></a><tt class="py-lineno"> 686</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-913" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-909', 'text', 'link-205');">text</a></tt> </tt>
+<a name="L698"></a><tt class="py-lineno"> 698</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L699"></a><tt class="py-lineno"> 699</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-910" 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-913', 'tag', 'link-73');">tag</a></tt> </tt>
-</div><a name="L687"></a><tt class="py-lineno"> 687</tt>  <tt class="py-line"> </tt>
-<a name="L688"></a><tt class="py-lineno"> 688</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;!--A--&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>
-<a name="L689"></a><tt class="py-lineno"> 689</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-914" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-914', 'iterparse', 'link-895');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">events</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">'comment'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L690"></a><tt class="py-lineno"> 690</tt>  <tt class="py-line">        <tt id="link-915" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-915', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">events</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-number">1</tt><tt class="py-op">]</tt> </tt>
-<a name="L691"></a><tt class="py-lineno"> 691</tt>  <tt class="py-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">6</tt><tt class="py-op">,</tt> <tt class="py-name">len</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="L692"></a><tt class="py-lineno"> 692</tt>  <tt class="py-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-string">' B '</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</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">'a'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L693"></a><tt class="py-lineno"> 693</tt>  <tt class="py-line">                          <tt class="py-op">[</tt> <tt id="link-916" class="py-name" targets="Variable lxml.etree.DTD.name=lxml.etree.DTD-class.html#name,Variable lxml.etree._Entity.name=lxml.etree._Entity-class.html#name,Variable lxml.html.InputMixin.name=lxml.html.InputMixin-class.html#name,Variable lxml.objectify.PyType.name=lxml.objectify.PyType-class.html#name"><a title="lxml.etree.DTD.name
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-910', 'tag', 'link-73');">tag</a></tt> </tt>
+</div><a name="L700"></a><tt class="py-lineno"> 700</tt>  <tt class="py-line"> </tt>
+<a name="L701"></a><tt class="py-lineno"> 701</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;!--A--&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>
+<a name="L702"></a><tt class="py-lineno"> 702</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-911" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-911', 'iterparse', 'link-892');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">events</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">'comment'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L703"></a><tt class="py-lineno"> 703</tt>  <tt class="py-line">        <tt id="link-912" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-912', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">events</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-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L704"></a><tt class="py-lineno"> 704</tt>  <tt class="py-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">6</tt><tt class="py-op">,</tt> <tt class="py-name">len</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="L705"></a><tt class="py-lineno"> 705</tt>  <tt class="py-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-string">' B '</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</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">'a'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L706"></a><tt class="py-lineno"> 706</tt>  <tt class="py-line">                          <tt class="py-op">[</tt> <tt id="link-913" class="py-name" targets="Variable lxml.etree.DTD.name=lxml.etree.DTD-class.html#name,Variable lxml.etree._Entity.name=lxml.etree._Entity-class.html#name,Variable lxml.html.InputMixin.name=lxml.html.InputMixin-class.html#name,Variable lxml.objectify.PyType.name=lxml.objectify.PyType-class.html#name"><a title="lxml.etree.DTD.name
 lxml.etree._Entity.name
 lxml.html.InputMixin.name
-lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-916', 'name', 'link-916');">name</a></tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-name">item</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">item</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="L694"></a><tt class="py-lineno"> 694</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L695"></a><tt class="py-lineno"> 695</tt>  <tt class="py-line">            <tt id="link-917" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-917', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;!--A--&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>
-<a name="L696"></a><tt class="py-lineno"> 696</tt>  <tt class="py-line">            <tt id="link-918" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-918', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-919" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-919', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L697"></a><tt class="py-lineno"> 697</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterparse_pis"></a><div id="ETreeOnlyTestCase.test_iterparse_pis-def"><a name="L698"></a><tt class="py-lineno"> 698</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_pis-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_pis');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_pis">test_iterparse_pis</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterparse_pis-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_pis-expanded"><a name="L699"></a><tt class="py-lineno"> 699</tt>  <tt class="py-line">        <tt class="py-comment"># ET removes pis</tt> </tt>
-<a name="L700"></a><tt class="py-lineno"> 700</tt>  <tt class="py-line">        <tt id="link-920" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-920', 'iterparse', 'link-895');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-921" class="py-name"><a title="lxml.etree
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-913', 'name', 'link-913');">name</a></tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-name">item</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">item</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="L707"></a><tt class="py-lineno"> 707</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L708"></a><tt class="py-lineno"> 708</tt>  <tt class="py-line">            <tt id="link-914" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-914', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;!--A--&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>
+<a name="L709"></a><tt class="py-lineno"> 709</tt>  <tt class="py-line">            <tt id="link-915" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-915', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-916" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-916', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L710"></a><tt class="py-lineno"> 710</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterparse_pis"></a><div id="ETreeOnlyTestCase.test_iterparse_pis-def"><a name="L711"></a><tt class="py-lineno"> 711</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_pis-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_pis');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_pis">test_iterparse_pis</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterparse_pis-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_pis-expanded"><a name="L712"></a><tt class="py-lineno"> 712</tt>  <tt class="py-line">        <tt class="py-comment"># ET removes pis</tt> </tt>
+<a name="L713"></a><tt class="py-lineno"> 713</tt>  <tt class="py-line">        <tt id="link-917" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-917', 'iterparse', 'link-892');">iterparse</a></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.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -2808,10 +2804,10 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-921', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-922" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-922', 'iterparse', 'link-895');">iterparse</a></tt> </tt>
-<a name="L701"></a><tt class="py-lineno"> 701</tt>  <tt class="py-line">        <tt id="link-923" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-923', 'tostring', 'link-237');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-924" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-918', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-919" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-919', 'iterparse', 'link-892');">iterparse</a></tt> </tt>
+<a name="L714"></a><tt class="py-lineno"> 714</tt>  <tt class="py-line">        <tt id="link-920" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-920', 'tostring', 'link-237');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-921" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -2819,11 +2815,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-924', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-925" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-925', 'tostring', 'link-237');">tostring</a></tt> </tt>
-<a name="L702"></a><tt class="py-lineno"> 702</tt>  <tt class="py-line">        <tt id="link-926" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-921', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-922" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-922', 'tostring', 'link-237');">tostring</a></tt> </tt>
+<a name="L715"></a><tt class="py-lineno"> 715</tt>  <tt class="py-line">        <tt id="link-923" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-926', 'ElementTree', 'link-573');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-927" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-923', 'ElementTree', 'link-570');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-924" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -2831,46 +2827,46 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-927', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-928" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-924', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-925" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-928', 'ElementTree', 'link-573');">ElementTree</a></tt> </tt>
-<a name="L703"></a><tt class="py-lineno"> 703</tt>  <tt class="py-line"> </tt>
-<a name="L704"></a><tt class="py-lineno"> 704</tt>  <tt class="py-line">        <tt class="py-keyword">def</tt> <tt class="py-def-name">name</tt><tt class="py-op">(</tt><tt class="py-param">event</tt><tt class="py-op">,</tt> <tt class="py-param">el</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L705"></a><tt class="py-lineno"> 705</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">event</tt> <tt class="py-op">==</tt> <tt class="py-string">'pi'</tt><tt class="py-op">:</tt> </tt>
-<a name="L706"></a><tt class="py-lineno"> 706</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-929" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-929', 'target', 'link-727');">target</a></tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-930" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-925', 'ElementTree', 'link-570');">ElementTree</a></tt> </tt>
+<a name="L716"></a><tt class="py-lineno"> 716</tt>  <tt class="py-line"> </tt>
+<a name="L717"></a><tt class="py-lineno"> 717</tt>  <tt class="py-line">        <tt class="py-keyword">def</tt> <tt class="py-def-name">name</tt><tt class="py-op">(</tt><tt class="py-param">event</tt><tt class="py-op">,</tt> <tt class="py-param">el</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L718"></a><tt class="py-lineno"> 718</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">event</tt> <tt class="py-op">==</tt> <tt class="py-string">'pi'</tt><tt class="py-op">:</tt> </tt>
+<a name="L719"></a><tt class="py-lineno"> 719</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-926" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-926', 'target', 'link-724');">target</a></tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-927" 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-930', 'text', 'link-205');">text</a></tt> </tt>
-<a name="L707"></a><tt class="py-lineno"> 707</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L708"></a><tt class="py-lineno"> 708</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-931" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-927', 'text', 'link-205');">text</a></tt> </tt>
+<a name="L720"></a><tt class="py-lineno"> 720</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L721"></a><tt class="py-lineno"> 721</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-928" 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-931', 'tag', 'link-73');">tag</a></tt> </tt>
-</div><a name="L709"></a><tt class="py-lineno"> 709</tt>  <tt class="py-line"> </tt>
-<a name="L710"></a><tt class="py-lineno"> 710</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;?pia a?&gt;&lt;a&gt;&lt;?pib b?&gt;&lt;b&gt;&lt;?pic c?&gt;&lt;c/&gt;&lt;/b&gt;&lt;?pid d?&gt;&lt;/a&gt;&lt;?pie e?&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L711"></a><tt class="py-lineno"> 711</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-932" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-932', 'iterparse', 'link-895');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">events</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">'pi'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L712"></a><tt class="py-lineno"> 712</tt>  <tt class="py-line">        <tt id="link-933" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-933', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">events</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-number">1</tt><tt class="py-op">]</tt> </tt>
-<a name="L713"></a><tt class="py-lineno"> 713</tt>  <tt class="py-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">8</tt><tt class="py-op">,</tt> <tt class="py-name">len</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="L714"></a><tt class="py-lineno"> 714</tt>  <tt class="py-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">'pia'</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-string">'pib'</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-string">'pic'</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-string">'c'</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">,</tt> </tt>
-<a name="L715"></a><tt class="py-lineno"> 715</tt>  <tt class="py-line">                           <tt class="py-op">(</tt><tt class="py-string">'pid'</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-string">'a'</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'pie'</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="L716"></a><tt class="py-lineno"> 716</tt>  <tt class="py-line">                          <tt class="py-op">[</tt> <tt id="link-934" class="py-name"><a title="lxml.etree.DTD.name
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-928', 'tag', 'link-73');">tag</a></tt> </tt>
+</div><a name="L722"></a><tt class="py-lineno"> 722</tt>  <tt class="py-line"> </tt>
+<a name="L723"></a><tt class="py-lineno"> 723</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;?pia a?&gt;&lt;a&gt;&lt;?pib b?&gt;&lt;b&gt;&lt;?pic c?&gt;&lt;c/&gt;&lt;/b&gt;&lt;?pid d?&gt;&lt;/a&gt;&lt;?pie e?&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L724"></a><tt class="py-lineno"> 724</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-929" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-929', 'iterparse', 'link-892');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">events</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">'pi'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L725"></a><tt class="py-lineno"> 725</tt>  <tt class="py-line">        <tt id="link-930" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-930', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">events</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-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L726"></a><tt class="py-lineno"> 726</tt>  <tt class="py-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">8</tt><tt class="py-op">,</tt> <tt class="py-name">len</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="L727"></a><tt class="py-lineno"> 727</tt>  <tt class="py-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">'pia'</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-string">'pib'</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-string">'pic'</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-string">'c'</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">,</tt> </tt>
+<a name="L728"></a><tt class="py-lineno"> 728</tt>  <tt class="py-line">                           <tt class="py-op">(</tt><tt class="py-string">'pid'</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-string">'a'</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'pie'</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="L729"></a><tt class="py-lineno"> 729</tt>  <tt class="py-line">                          <tt class="py-op">[</tt> <tt id="link-931" class="py-name"><a title="lxml.etree.DTD.name
 lxml.etree._Entity.name
 lxml.html.InputMixin.name
-lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-934', 'name', 'link-916');">name</a></tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-name">item</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">item</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="L717"></a><tt class="py-lineno"> 717</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L718"></a><tt class="py-lineno"> 718</tt>  <tt class="py-line">            <tt id="link-935" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-935', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;?pia a?&gt;&lt;a&gt;&lt;?pib b?&gt;&lt;b&gt;&lt;?pic c?&gt;&lt;c/&gt;&lt;/b&gt;&lt;?pid d?&gt;&lt;/a&gt;&lt;?pie e?&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L719"></a><tt class="py-lineno"> 719</tt>  <tt class="py-line">            <tt id="link-936" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-936', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-937" class="py-name"><a title="lxml.etree.ElementTree
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-931', 'name', 'link-913');">name</a></tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-name">item</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">item</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="L730"></a><tt class="py-lineno"> 730</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L731"></a><tt class="py-lineno"> 731</tt>  <tt class="py-line">            <tt id="link-932" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-932', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;?pia a?&gt;&lt;a&gt;&lt;?pib b?&gt;&lt;b&gt;&lt;?pic c?&gt;&lt;c/&gt;&lt;/b&gt;&lt;?pid d?&gt;&lt;/a&gt;&lt;?pie e?&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L732"></a><tt class="py-lineno"> 732</tt>  <tt class="py-line">            <tt id="link-933" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-933', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-934" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-937', 'ElementTree', 'link-573');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-938" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-938', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L720"></a><tt class="py-lineno"> 720</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterparse_remove_comments"></a><div id="ETreeOnlyTestCase.test_iterparse_remove_comments-def"><a name="L721"></a><tt class="py-lineno"> 721</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_remove_comments-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_remove_comments');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_remove_comments">test_iterparse_remove_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="ETreeOnlyTestCase.test_iterparse_remove_comments-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_remove_comments-expanded"><a name="L722"></a><tt class="py-lineno"> 722</tt>  <tt class="py-line">        <tt id="link-939" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-939', 'iterparse', 'link-895');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-940" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-934', 'ElementTree', 'link-570');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-935" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-935', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L733"></a><tt class="py-lineno"> 733</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterparse_remove_comments"></a><div id="ETreeOnlyTestCase.test_iterparse_remove_comments-def"><a name="L734"></a><tt class="py-lineno"> 734</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_remove_comments-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_remove_comments');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_remove_comments">test_iterparse_remove_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="ETreeOnlyTestCase.test_iterparse_remove_comments-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_remove_comments-expanded"><a name="L735"></a><tt class="py-lineno"> 735</tt>  <tt class="py-line">        <tt id="link-936" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-936', 'iterparse', 'link-892');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</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.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -2878,10 +2874,10 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-940', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-941" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-941', 'iterparse', 'link-895');">iterparse</a></tt> </tt>
-<a name="L723"></a><tt class="py-lineno"> 723</tt>  <tt class="py-line">        <tt id="link-942" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-942', 'tostring', 'link-237');">tostring</a></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
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-937', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-938" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-938', 'iterparse', 'link-892');">iterparse</a></tt> </tt>
+<a name="L736"></a><tt class="py-lineno"> 736</tt>  <tt class="py-line">        <tt id="link-939" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-939', 'tostring', 'link-237');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-940" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -2889,30 +2885,30 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-943', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-944" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-944', 'tostring', 'link-237');">tostring</a></tt> </tt>
-<a name="L724"></a><tt class="py-lineno"> 724</tt>  <tt class="py-line"> </tt>
-<a name="L725"></a><tt class="py-lineno"> 725</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;!--A--&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>
-<a name="L726"></a><tt class="py-lineno"> 726</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-945" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-945', 'iterparse', 'link-895');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">remove_comments</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> </tt>
-<a name="L727"></a><tt class="py-lineno"> 727</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">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'comment'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L728"></a><tt class="py-lineno"> 728</tt>  <tt class="py-line">        <tt id="link-946" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-946', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">events</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-number">1</tt><tt class="py-op">]</tt> </tt>
-<a name="L729"></a><tt class="py-lineno"> 729</tt>  <tt class="py-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">3</tt><tt class="py-op">,</tt> <tt class="py-name">len</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="L730"></a><tt class="py-lineno"> 730</tt>  <tt class="py-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">'c'</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L731"></a><tt class="py-lineno"> 731</tt>  <tt class="py-line">                          <tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-947" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-940', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-941" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-941', 'tostring', 'link-237');">tostring</a></tt> </tt>
+<a name="L737"></a><tt class="py-lineno"> 737</tt>  <tt class="py-line"> </tt>
+<a name="L738"></a><tt class="py-lineno"> 738</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;!--A--&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>
+<a name="L739"></a><tt class="py-lineno"> 739</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-942" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-942', 'iterparse', 'link-892');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">remove_comments</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> </tt>
+<a name="L740"></a><tt class="py-lineno"> 740</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">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'comment'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L741"></a><tt class="py-lineno"> 741</tt>  <tt class="py-line">        <tt id="link-943" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-943', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">events</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-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L742"></a><tt class="py-lineno"> 742</tt>  <tt class="py-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">3</tt><tt class="py-op">,</tt> <tt class="py-name">len</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="L743"></a><tt class="py-lineno"> 743</tt>  <tt class="py-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">'c'</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L744"></a><tt class="py-lineno"> 744</tt>  <tt class="py-line">                          <tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-944" 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-947', 'tag', 'link-73');">tag</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 class="py-name">events</tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L732"></a><tt class="py-lineno"> 732</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L733"></a><tt class="py-lineno"> 733</tt>  <tt class="py-line">            <tt id="link-948" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-948', '_bytes', 'link-18');">_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;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L734"></a><tt class="py-lineno"> 734</tt>  <tt class="py-line">            <tt id="link-949" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-949', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-950" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-950', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L735"></a><tt class="py-lineno"> 735</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterparse_broken"></a><div id="ETreeOnlyTestCase.test_iterparse_broken-def"><a name="L736"></a><tt class="py-lineno"> 736</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_broken-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_broken');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_broken">test_iterparse_broken</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterparse_broken-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_broken-expanded"><a name="L737"></a><tt class="py-lineno"> 737</tt>  <tt class="py-line">        <tt id="link-951" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-951', 'iterparse', 'link-895');">iterparse</a></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
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-944', 'tag', 'link-73');">tag</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 class="py-name">events</tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L745"></a><tt class="py-lineno"> 745</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L746"></a><tt class="py-lineno"> 746</tt>  <tt class="py-line">            <tt id="link-945" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-945', '_bytes', 'link-18');">_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;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L747"></a><tt class="py-lineno"> 747</tt>  <tt class="py-line">            <tt id="link-946" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-946', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-947" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-947', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L748"></a><tt class="py-lineno"> 748</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterparse_broken"></a><div id="ETreeOnlyTestCase.test_iterparse_broken-def"><a name="L749"></a><tt class="py-lineno"> 749</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_broken-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_broken');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_broken">test_iterparse_broken</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterparse_broken-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_broken-expanded"><a name="L750"></a><tt class="py-lineno"> 750</tt>  <tt class="py-line">        <tt id="link-948" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-948', 'iterparse', 'link-892');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-949" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -2920,11 +2916,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-952', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-953" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-953', 'iterparse', 'link-895');">iterparse</a></tt> </tt>
-<a name="L738"></a><tt class="py-lineno"> 738</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;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L739"></a><tt class="py-lineno"> 739</tt>  <tt class="py-line">        <tt class="py-comment"># ET raises ExpatError, lxml raises XMLSyntaxError</tt> </tt>
-<a name="L740"></a><tt class="py-lineno"> 740</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">self</tt><tt class="py-op">.</tt><tt id="link-954" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-949', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-950" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-950', 'iterparse', 'link-892');">iterparse</a></tt> </tt>
+<a name="L751"></a><tt class="py-lineno"> 751</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;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L752"></a><tt class="py-lineno"> 752</tt>  <tt class="py-line">        <tt class="py-comment"># ET raises ExpatError, lxml raises XMLSyntaxError</tt> </tt>
+<a name="L753"></a><tt class="py-lineno"> 753</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">self</tt><tt class="py-op">.</tt><tt id="link-951" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -2932,12 +2928,12 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-954', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-955" class="py-name" targets="Class lxml.etree.XMLSyntaxError=lxml.etree.XMLSyntaxError-class.html"><a title="lxml.etree.XMLSyntaxError" class="py-name" href="#" onclick="return doclink('link-955', 'XMLSyntaxError', 'link-955');">XMLSyntaxError</a></tt><tt class="py-op">,</tt> <tt class="py-name">list</tt><tt class="py-op">,</tt> <tt id="link-956" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-956', 'iterparse', 'link-895');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L741"></a><tt class="py-lineno"> 741</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterparse_broken_recover"></a><div id="ETreeOnlyTestCase.test_iterparse_broken_recover-def"><a name="L742"></a><tt class="py-lineno"> 742</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_broken_recover-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_broken_recover');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_broken_recover">test_iterparse_broken_recover</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterparse_broken_recover-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_broken_recover-expanded"><a name="L743"></a><tt class="py-lineno"> 743</tt>  <tt class="py-line">        <tt id="link-957" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-957', 'iterparse', 'link-895');">iterparse</a></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
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-951', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-952" class="py-name" targets="Class lxml.etree.XMLSyntaxError=lxml.etree.XMLSyntaxError-class.html"><a title="lxml.etree.XMLSyntaxError" class="py-name" href="#" onclick="return doclink('link-952', 'XMLSyntaxError', 'link-952');">XMLSyntaxError</a></tt><tt class="py-op">,</tt> <tt class="py-name">list</tt><tt class="py-op">,</tt> <tt id="link-953" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-953', 'iterparse', 'link-892');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L754"></a><tt class="py-lineno"> 754</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterparse_broken_recover"></a><div id="ETreeOnlyTestCase.test_iterparse_broken_recover-def"><a name="L755"></a><tt class="py-lineno"> 755</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_broken_recover-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_broken_recover');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_broken_recover">test_iterparse_broken_recover</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterparse_broken_recover-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_broken_recover-expanded"><a name="L756"></a><tt class="py-lineno"> 756</tt>  <tt class="py-line">        <tt id="link-954" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-954', 'iterparse', 'link-892');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-955" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -2945,32 +2941,32 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-958', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-959" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-959', 'iterparse', 'link-895');">iterparse</a></tt> </tt>
-<a name="L744"></a><tt class="py-lineno"> 744</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;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L745"></a><tt class="py-lineno"> 745</tt>  <tt class="py-line">        <tt class="py-name">it</tt> <tt class="py-op">=</tt> <tt id="link-960" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-960', 'iterparse', 'link-895');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <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-string">'end'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">recover</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L746"></a><tt class="py-lineno"> 746</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-name">ev</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-961" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-955', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-956" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-956', 'iterparse', 'link-892');">iterparse</a></tt> </tt>
+<a name="L757"></a><tt class="py-lineno"> 757</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;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L758"></a><tt class="py-lineno"> 758</tt>  <tt class="py-line">        <tt class="py-name">it</tt> <tt class="py-op">=</tt> <tt id="link-957" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-957', 'iterparse', 'link-892');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <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-string">'end'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">recover</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L759"></a><tt class="py-lineno"> 759</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-name">ev</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-958" 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-961', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">ev</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">it</tt><tt class="py-op">]</tt> </tt>
-<a name="L747"></a><tt class="py-lineno"> 747</tt>  <tt class="py-line">        <tt id="link-962" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-962', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">it</tt><tt class="py-op">.</tt><tt id="link-963" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-963', 'root', 'link-247');">root</a></tt> </tt>
-<a name="L748"></a><tt class="py-lineno"> 748</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-964" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-964', 'root', 'link-247');">root</a></tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L749"></a><tt class="py-lineno"> 749</tt>  <tt class="py-line"> </tt>
-<a name="L750"></a><tt class="py-lineno"> 750</tt>  <tt class="py-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">1</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt class="py-name">count</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">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L751"></a><tt class="py-lineno"> 751</tt>  <tt class="py-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">1</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt class="py-name">count</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">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L752"></a><tt class="py-lineno"> 752</tt>  <tt class="py-line"> </tt>
-<a name="L753"></a><tt class="py-lineno"> 753</tt>  <tt class="py-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">1</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt class="py-name">count</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">'b'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L754"></a><tt class="py-lineno"> 754</tt>  <tt class="py-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">1</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt class="py-name">count</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">'b'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L755"></a><tt class="py-lineno"> 755</tt>  <tt class="py-line"> </tt>
-<a name="L756"></a><tt class="py-lineno"> 756</tt>  <tt class="py-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">1</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt class="py-name">count</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">'c'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L757"></a><tt class="py-lineno"> 757</tt>  <tt class="py-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">1</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt class="py-name">count</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">'c'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L758"></a><tt class="py-lineno"> 758</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterparse_broken_multi_recover"></a><div id="ETreeOnlyTestCase.test_iterparse_broken_multi_recover-def"><a name="L759"></a><tt class="py-lineno"> 759</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_broken_multi_recover-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_broken_multi_recover');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_broken_multi_recover">test_iterparse_broken_multi_recover</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterparse_broken_multi_recover-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_broken_multi_recover-expanded"><a name="L760"></a><tt class="py-lineno"> 760</tt>  <tt class="py-line">        <tt id="link-965" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-965', 'iterparse', 'link-895');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-966" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-958', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">ev</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">it</tt><tt class="py-op">]</tt> </tt>
+<a name="L760"></a><tt class="py-lineno"> 760</tt>  <tt class="py-line">        <tt id="link-959" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-959', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">it</tt><tt class="py-op">.</tt><tt id="link-960" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-960', 'root', 'link-247');">root</a></tt> </tt>
+<a name="L761"></a><tt class="py-lineno"> 761</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-961" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-961', 'root', 'link-247');">root</a></tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L762"></a><tt class="py-lineno"> 762</tt>  <tt class="py-line"> </tt>
+<a name="L763"></a><tt class="py-lineno"> 763</tt>  <tt class="py-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">1</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt class="py-name">count</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">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L764"></a><tt class="py-lineno"> 764</tt>  <tt class="py-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">1</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt class="py-name">count</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">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L765"></a><tt class="py-lineno"> 765</tt>  <tt class="py-line"> </tt>
+<a name="L766"></a><tt class="py-lineno"> 766</tt>  <tt class="py-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">1</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt class="py-name">count</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">'b'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L767"></a><tt class="py-lineno"> 767</tt>  <tt class="py-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">1</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt class="py-name">count</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">'b'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L768"></a><tt class="py-lineno"> 768</tt>  <tt class="py-line"> </tt>
+<a name="L769"></a><tt class="py-lineno"> 769</tt>  <tt class="py-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">1</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt class="py-name">count</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">'c'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L770"></a><tt class="py-lineno"> 770</tt>  <tt class="py-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">1</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt class="py-name">count</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">'c'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L771"></a><tt class="py-lineno"> 771</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterparse_broken_multi_recover"></a><div id="ETreeOnlyTestCase.test_iterparse_broken_multi_recover-def"><a name="L772"></a><tt class="py-lineno"> 772</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_broken_multi_recover-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_broken_multi_recover');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_broken_multi_recover">test_iterparse_broken_multi_recover</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterparse_broken_multi_recover-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_broken_multi_recover-expanded"><a name="L773"></a><tt class="py-lineno"> 773</tt>  <tt class="py-line">        <tt id="link-962" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-962', 'iterparse', 'link-892');">iterparse</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
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -2978,32 +2974,32 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-966', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-967" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-967', 'iterparse', 'link-895');">iterparse</a></tt> </tt>
-<a name="L761"></a><tt class="py-lineno"> 761</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;/d&gt;&lt;b&gt;&lt;c/&gt;&lt;/a&gt;&lt;/b&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L762"></a><tt class="py-lineno"> 762</tt>  <tt class="py-line">        <tt class="py-name">it</tt> <tt class="py-op">=</tt> <tt id="link-968" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-968', 'iterparse', 'link-895');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <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-string">'end'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">recover</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L763"></a><tt class="py-lineno"> 763</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-name">ev</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-969" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-963', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-964" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-964', 'iterparse', 'link-892');">iterparse</a></tt> </tt>
+<a name="L774"></a><tt class="py-lineno"> 774</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;/d&gt;&lt;b&gt;&lt;c/&gt;&lt;/a&gt;&lt;/b&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L775"></a><tt class="py-lineno"> 775</tt>  <tt class="py-line">        <tt class="py-name">it</tt> <tt class="py-op">=</tt> <tt id="link-965" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-965', 'iterparse', 'link-892');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <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-string">'end'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">recover</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L776"></a><tt class="py-lineno"> 776</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-name">ev</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-966" 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-969', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">ev</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">it</tt><tt class="py-op">]</tt> </tt>
-<a name="L764"></a><tt class="py-lineno"> 764</tt>  <tt class="py-line">        <tt id="link-970" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-970', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">it</tt><tt class="py-op">.</tt><tt id="link-971" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-971', 'root', 'link-247');">root</a></tt> </tt>
-<a name="L765"></a><tt class="py-lineno"> 765</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-972" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-972', 'root', 'link-247');">root</a></tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L766"></a><tt class="py-lineno"> 766</tt>  <tt class="py-line"> </tt>
-<a name="L767"></a><tt class="py-lineno"> 767</tt>  <tt class="py-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">1</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt class="py-name">count</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">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L768"></a><tt class="py-lineno"> 768</tt>  <tt class="py-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">1</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt class="py-name">count</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">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L769"></a><tt class="py-lineno"> 769</tt>  <tt class="py-line"> </tt>
-<a name="L770"></a><tt class="py-lineno"> 770</tt>  <tt class="py-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">2</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt class="py-name">count</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">'b'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L771"></a><tt class="py-lineno"> 771</tt>  <tt class="py-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">2</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt class="py-name">count</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">'b'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L772"></a><tt class="py-lineno"> 772</tt>  <tt class="py-line"> </tt>
-<a name="L773"></a><tt class="py-lineno"> 773</tt>  <tt class="py-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">2</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt class="py-name">count</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">'c'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L774"></a><tt class="py-lineno"> 774</tt>  <tt class="py-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">2</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt class="py-name">count</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">'c'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L775"></a><tt class="py-lineno"> 775</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterparse_strip"></a><div id="ETreeOnlyTestCase.test_iterparse_strip-def"><a name="L776"></a><tt class="py-lineno"> 776</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_strip-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_strip');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_strip">test_iterparse_strip</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterparse_strip-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_strip-expanded"><a name="L777"></a><tt class="py-lineno"> 777</tt>  <tt class="py-line">        <tt id="link-973" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-973', 'iterparse', 'link-895');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-974" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-966', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">ev</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">it</tt><tt class="py-op">]</tt> </tt>
+<a name="L777"></a><tt class="py-lineno"> 777</tt>  <tt class="py-line">        <tt id="link-967" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-967', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">it</tt><tt class="py-op">.</tt><tt id="link-968" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-968', 'root', 'link-247');">root</a></tt> </tt>
+<a name="L778"></a><tt class="py-lineno"> 778</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-969" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-969', 'root', 'link-247');">root</a></tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L779"></a><tt class="py-lineno"> 779</tt>  <tt class="py-line"> </tt>
+<a name="L780"></a><tt class="py-lineno"> 780</tt>  <tt class="py-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">1</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt class="py-name">count</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">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L781"></a><tt class="py-lineno"> 781</tt>  <tt class="py-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">1</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt class="py-name">count</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">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L782"></a><tt class="py-lineno"> 782</tt>  <tt class="py-line"> </tt>
+<a name="L783"></a><tt class="py-lineno"> 783</tt>  <tt class="py-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">2</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt class="py-name">count</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">'b'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L784"></a><tt class="py-lineno"> 784</tt>  <tt class="py-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">2</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt class="py-name">count</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">'b'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L785"></a><tt class="py-lineno"> 785</tt>  <tt class="py-line"> </tt>
+<a name="L786"></a><tt class="py-lineno"> 786</tt>  <tt class="py-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">2</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt class="py-name">count</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">'c'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L787"></a><tt class="py-lineno"> 787</tt>  <tt class="py-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">2</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt class="py-name">count</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">'c'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L788"></a><tt class="py-lineno"> 788</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterparse_strip"></a><div id="ETreeOnlyTestCase.test_iterparse_strip-def"><a name="L789"></a><tt class="py-lineno"> 789</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_strip-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_strip');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_strip">test_iterparse_strip</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterparse_strip-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_strip-expanded"><a name="L790"></a><tt class="py-lineno"> 790</tt>  <tt class="py-line">        <tt id="link-970" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-970', 'iterparse', 'link-892');">iterparse</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
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -3011,36 +3007,36 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-974', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-975" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-975', 'iterparse', 'link-895');">iterparse</a></tt> </tt>
-<a name="L778"></a><tt class="py-lineno"> 778</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">"""</tt> </tt>
-<a name="L779"></a><tt class="py-lineno"> 779</tt>  <tt class="py-line"><tt class="py-string">               &lt;a&gt;  \n \n  &lt;b&gt; b test &lt;/b&gt;  \n</tt> </tt>
-<a name="L780"></a><tt class="py-lineno"> 780</tt>  <tt class="py-line"><tt class="py-string"></tt> </tt>
-<a name="L781"></a><tt class="py-lineno"> 781</tt>  <tt class="py-line"><tt class="py-string">               \n\t &lt;c&gt; \n &lt;/c&gt; &lt;/a&gt;  \n """</tt><tt class="py-op">)</tt> </tt>
-<a name="L782"></a><tt class="py-lineno"> 782</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-976" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-976', 'iterparse', 'link-895');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <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>
-<a name="L783"></a><tt class="py-lineno"> 783</tt>  <tt class="py-line">        <tt id="link-977" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-971', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-972" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-972', 'iterparse', 'link-892');">iterparse</a></tt> </tt>
+<a name="L791"></a><tt class="py-lineno"> 791</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">"""</tt> </tt>
+<a name="L792"></a><tt class="py-lineno"> 792</tt>  <tt class="py-line"><tt class="py-string">               &lt;a&gt;  \n \n  &lt;b&gt; b test &lt;/b&gt;  \n</tt> </tt>
+<a name="L793"></a><tt class="py-lineno"> 793</tt>  <tt class="py-line"><tt class="py-string"></tt> </tt>
+<a name="L794"></a><tt class="py-lineno"> 794</tt>  <tt class="py-line"><tt class="py-string">               \n\t &lt;c&gt; \n &lt;/c&gt; &lt;/a&gt;  \n """</tt><tt class="py-op">)</tt> </tt>
+<a name="L795"></a><tt class="py-lineno"> 795</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-973" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-973', 'iterparse', 'link-892');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <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>
+<a name="L796"></a><tt class="py-lineno"> 796</tt>  <tt class="py-line">        <tt id="link-974" 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-977', 'text', 'link-205');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt> <tt class="py-op">(</tt><tt id="link-978" class="py-name" targets="Function lxml.tests.selftest2.element()=lxml.tests.selftest2-module.html#element"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-978', 'element', 'link-978');">element</a></tt><tt class="py-op">.</tt><tt id="link-979" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-974', 'text', 'link-205');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt> <tt class="py-op">(</tt><tt id="link-975" class="py-name" targets="Function lxml.tests.selftest2.element()=lxml.tests.selftest2-module.html#element"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-975', 'element', 'link-975');">element</a></tt><tt class="py-op">.</tt><tt id="link-976" 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-979', 'text', 'link-205');">text</a></tt><tt class="py-op">,</tt> <tt id="link-980" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-980', 'element', 'link-978');">element</a></tt><tt class="py-op">.</tt><tt id="link-981" class="py-name" targets="Variable lxml.etree._Element.tail=lxml.etree._Element-class.html#tail,Variable xml.etree.ElementTree.Element.tail=xml.etree.ElementTree.Element-class.html#tail"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-981', 'tail', 'link-981');">tail</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L784"></a><tt class="py-lineno"> 784</tt>  <tt class="py-line">                 <tt class="py-keyword">for</tt> <tt class="py-name">event</tt><tt class="py-op">,</tt> <tt id="link-982" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-982', 'element', 'link-978');">element</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">iterator</tt> <tt class="py-op">]</tt> </tt>
-<a name="L785"></a><tt class="py-lineno"> 785</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L786"></a><tt class="py-lineno"> 786</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">" b test "</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-op">(</tt><tt class="py-string">" \n "</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-op">(</tt><tt class="py-name">None</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-op">,</tt> </tt>
-<a name="L787"></a><tt class="py-lineno"> 787</tt>  <tt class="py-line">            <tt id="link-983" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-976', 'text', 'link-205');">text</a></tt><tt class="py-op">,</tt> <tt id="link-977" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-977', 'element', 'link-975');">element</a></tt><tt class="py-op">.</tt><tt id="link-978" class="py-name" targets="Variable lxml.etree._Element.tail=lxml.etree._Element-class.html#tail,Variable xml.etree.ElementTree.Element.tail=xml.etree.ElementTree.Element-class.html#tail"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-978', 'tail', 'link-978');">tail</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L797"></a><tt class="py-lineno"> 797</tt>  <tt class="py-line">                 <tt class="py-keyword">for</tt> <tt class="py-name">event</tt><tt class="py-op">,</tt> <tt id="link-979" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-979', 'element', 'link-975');">element</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">iterator</tt> <tt class="py-op">]</tt> </tt>
+<a name="L798"></a><tt class="py-lineno"> 798</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L799"></a><tt class="py-lineno"> 799</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">" b test "</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-op">(</tt><tt class="py-string">" \n "</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-op">(</tt><tt class="py-name">None</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-op">,</tt> </tt>
+<a name="L800"></a><tt class="py-lineno"> 800</tt>  <tt class="py-line">            <tt id="link-980" 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-983', 'text', 'link-205');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L788"></a><tt class="py-lineno"> 788</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterparse_tag"></a><div id="ETreeOnlyTestCase.test_iterparse_tag-def"><a name="L789"></a><tt class="py-lineno"> 789</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_tag-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_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_iterparse_tag">test_iterparse_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_iterparse_tag-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_tag-expanded"><a name="L790"></a><tt class="py-lineno"> 790</tt>  <tt class="py-line">        <tt id="link-984" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-984', 'iterparse', 'link-895');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-985" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-980', 'text', 'link-205');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L801"></a><tt class="py-lineno"> 801</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterparse_tag"></a><div id="ETreeOnlyTestCase.test_iterparse_tag-def"><a name="L802"></a><tt class="py-lineno"> 802</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_tag-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_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_iterparse_tag">test_iterparse_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_iterparse_tag-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_tag-expanded"><a name="L803"></a><tt class="py-lineno"> 803</tt>  <tt class="py-line">        <tt id="link-981" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-981', 'iterparse', 'link-892');">iterparse</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
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -3048,26 +3044,26 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-985', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-986" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-986', 'iterparse', 'link-895');">iterparse</a></tt> </tt>
-<a name="L791"></a><tt class="py-lineno"> 791</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;d/&gt;&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L792"></a><tt class="py-lineno"> 792</tt>  <tt class="py-line"> </tt>
-<a name="L793"></a><tt class="py-lineno"> 793</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-987" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-987', 'iterparse', 'link-895');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-988" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-982', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-983" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-983', 'iterparse', 'link-892');">iterparse</a></tt> </tt>
+<a name="L804"></a><tt class="py-lineno"> 804</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;d/&gt;&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L805"></a><tt class="py-lineno"> 805</tt>  <tt class="py-line"> </tt>
+<a name="L806"></a><tt class="py-lineno"> 806</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-984" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-984', 'iterparse', 'link-892');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-985" 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-988', 'tag', 'link-73');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">"b"</tt><tt class="py-op">,</tt> <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-string">'end'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L794"></a><tt class="py-lineno"> 794</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
-<a name="L795"></a><tt class="py-lineno"> 795</tt>  <tt class="py-line">        <tt id="link-989" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-989', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-990" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-990', 'root', 'link-247');">root</a></tt> </tt>
-<a name="L796"></a><tt class="py-lineno"> 796</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L797"></a><tt class="py-lineno"> 797</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 id="link-991" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-991', 'root', 'link-247');">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 class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-992" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-992', 'root', 'link-247');">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 class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L798"></a><tt class="py-lineno"> 798</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L799"></a><tt class="py-lineno"> 799</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterparse_tag_all"></a><div id="ETreeOnlyTestCase.test_iterparse_tag_all-def"><a name="L800"></a><tt class="py-lineno"> 800</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_tag_all-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_tag_all');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag_all">test_iterparse_tag_all</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterparse_tag_all-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_tag_all-expanded"><a name="L801"></a><tt class="py-lineno"> 801</tt>  <tt class="py-line">        <tt id="link-993" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-993', 'iterparse', 'link-895');">iterparse</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
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-985', 'tag', 'link-73');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">"b"</tt><tt class="py-op">,</tt> <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-string">'end'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L807"></a><tt class="py-lineno"> 807</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
+<a name="L808"></a><tt class="py-lineno"> 808</tt>  <tt class="py-line">        <tt id="link-986" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-986', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-987" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-987', 'root', 'link-247');">root</a></tt> </tt>
+<a name="L809"></a><tt class="py-lineno"> 809</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L810"></a><tt class="py-lineno"> 810</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 id="link-988" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-988', 'root', 'link-247');">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 class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-989" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-989', 'root', 'link-247');">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 class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L811"></a><tt class="py-lineno"> 811</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L812"></a><tt class="py-lineno"> 812</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterparse_tag_all"></a><div id="ETreeOnlyTestCase.test_iterparse_tag_all-def"><a name="L813"></a><tt class="py-lineno"> 813</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_tag_all-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_tag_all');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag_all">test_iterparse_tag_all</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterparse_tag_all-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_tag_all-expanded"><a name="L814"></a><tt class="py-lineno"> 814</tt>  <tt class="py-line">        <tt id="link-990" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-990', 'iterparse', 'link-892');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-991" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -3075,25 +3071,25 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-994', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-995" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-995', 'iterparse', 'link-895');">iterparse</a></tt> </tt>
-<a name="L802"></a><tt class="py-lineno"> 802</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;d/&gt;&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L803"></a><tt class="py-lineno"> 803</tt>  <tt class="py-line"> </tt>
-<a name="L804"></a><tt class="py-lineno"> 804</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-996" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-996', 'iterparse', 'link-895');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-997" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-991', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-992" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-992', 'iterparse', 'link-892');">iterparse</a></tt> </tt>
+<a name="L815"></a><tt class="py-lineno"> 815</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;d/&gt;&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L816"></a><tt class="py-lineno"> 816</tt>  <tt class="py-line"> </tt>
+<a name="L817"></a><tt class="py-lineno"> 817</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-993" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-993', 'iterparse', 'link-892');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-994" 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-997', 'tag', 'link-73');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">"*"</tt><tt class="py-op">,</tt> <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-string">'end'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L805"></a><tt class="py-lineno"> 805</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
-<a name="L806"></a><tt class="py-lineno"> 806</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L807"></a><tt class="py-lineno"> 807</tt>  <tt class="py-line">            <tt class="py-number">8</tt><tt class="py-op">,</tt> </tt>
-<a name="L808"></a><tt class="py-lineno"> 808</tt>  <tt class="py-line">            <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L809"></a><tt class="py-lineno"> 809</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterparse_tag_ns"></a><div id="ETreeOnlyTestCase.test_iterparse_tag_ns-def"><a name="L810"></a><tt class="py-lineno"> 810</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_tag_ns-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_tag_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_iterparse_tag_ns">test_iterparse_tag_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_iterparse_tag_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_tag_ns-expanded"><a name="L811"></a><tt class="py-lineno"> 811</tt>  <tt class="py-line">        <tt id="link-998" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-998', 'iterparse', 'link-895');">iterparse</a></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
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-994', 'tag', 'link-73');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">"*"</tt><tt class="py-op">,</tt> <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-string">'end'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L818"></a><tt class="py-lineno"> 818</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
+<a name="L819"></a><tt class="py-lineno"> 819</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L820"></a><tt class="py-lineno"> 820</tt>  <tt class="py-line">            <tt class="py-number">8</tt><tt class="py-op">,</tt> </tt>
+<a name="L821"></a><tt class="py-lineno"> 821</tt>  <tt class="py-line">            <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L822"></a><tt class="py-lineno"> 822</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterparse_tag_ns"></a><div id="ETreeOnlyTestCase.test_iterparse_tag_ns-def"><a name="L823"></a><tt class="py-lineno"> 823</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_tag_ns-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_tag_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_iterparse_tag_ns">test_iterparse_tag_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_iterparse_tag_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_tag_ns-expanded"><a name="L824"></a><tt class="py-lineno"> 824</tt>  <tt class="py-line">        <tt id="link-995" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-995', 'iterparse', 'link-892');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-996" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -3101,26 +3097,26 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-999', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1000" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-1000', 'iterparse', 'link-895');">iterparse</a></tt> </tt>
-<a name="L812"></a><tt class="py-lineno"> 812</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="urn:test:1"&gt;&lt;b&gt;&lt;d/&gt;&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L813"></a><tt class="py-lineno"> 813</tt>  <tt class="py-line"> </tt>
-<a name="L814"></a><tt class="py-lineno"> 814</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1001" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-1001', 'iterparse', 'link-895');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-1002" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-996', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-997" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-997', 'iterparse', 'link-892');">iterparse</a></tt> </tt>
+<a name="L825"></a><tt class="py-lineno"> 825</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="urn:test:1"&gt;&lt;b&gt;&lt;d/&gt;&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L826"></a><tt class="py-lineno"> 826</tt>  <tt class="py-line"> </tt>
+<a name="L827"></a><tt class="py-lineno"> 827</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-998" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-998', 'iterparse', 'link-892');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-999" 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-1002', 'tag', 'link-73');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">"{urn:test:1}b"</tt><tt class="py-op">,</tt> <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-string">'end'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L815"></a><tt class="py-lineno"> 815</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
-<a name="L816"></a><tt class="py-lineno"> 816</tt>  <tt class="py-line">        <tt id="link-1003" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1003', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-1004" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1004', 'root', 'link-247');">root</a></tt> </tt>
-<a name="L817"></a><tt class="py-lineno"> 817</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L818"></a><tt class="py-lineno"> 818</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 id="link-1005" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1005', 'root', 'link-247');">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 class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1006" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1006', 'root', 'link-247');">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 class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L819"></a><tt class="py-lineno"> 819</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L820"></a><tt class="py-lineno"> 820</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterparse_tag_ns_empty"></a><div id="ETreeOnlyTestCase.test_iterparse_tag_ns_empty-def"><a name="L821"></a><tt class="py-lineno"> 821</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_tag_ns_empty-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_tag_ns_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_iterparse_tag_ns_empty">test_iterparse_tag_ns_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_iterparse_tag_ns_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_tag_ns_empty-expanded"><a name="L822"></a><tt class="py-lineno"> 822</tt>  <tt class="py-line">        <tt id="link-1007" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-1007', 'iterparse', 'link-895');">iterparse</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
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-999', 'tag', 'link-73');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">"{urn:test:1}b"</tt><tt class="py-op">,</tt> <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-string">'end'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L828"></a><tt class="py-lineno"> 828</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
+<a name="L829"></a><tt class="py-lineno"> 829</tt>  <tt class="py-line">        <tt id="link-1000" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1000', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-1001" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1001', 'root', 'link-247');">root</a></tt> </tt>
+<a name="L830"></a><tt class="py-lineno"> 830</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L831"></a><tt class="py-lineno"> 831</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 id="link-1002" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1002', 'root', 'link-247');">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 class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1003" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1003', 'root', 'link-247');">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 class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L832"></a><tt class="py-lineno"> 832</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L833"></a><tt class="py-lineno"> 833</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterparse_tag_ns_empty"></a><div id="ETreeOnlyTestCase.test_iterparse_tag_ns_empty-def"><a name="L834"></a><tt class="py-lineno"> 834</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_tag_ns_empty-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_tag_ns_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_iterparse_tag_ns_empty">test_iterparse_tag_ns_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_iterparse_tag_ns_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_tag_ns_empty-expanded"><a name="L835"></a><tt class="py-lineno"> 835</tt>  <tt class="py-line">        <tt id="link-1004" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-1004', 'iterparse', 'link-892');">iterparse</a></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.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -3128,37 +3124,37 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1008', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1009" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-1009', 'iterparse', 'link-895');">iterparse</a></tt> </tt>
-<a name="L823"></a><tt class="py-lineno"> 823</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;d/&gt;&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L824"></a><tt class="py-lineno"> 824</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1010" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-1010', 'iterparse', 'link-895');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-1011" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1005', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1006" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-1006', 'iterparse', 'link-892');">iterparse</a></tt> </tt>
+<a name="L836"></a><tt class="py-lineno"> 836</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;d/&gt;&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L837"></a><tt class="py-lineno"> 837</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1007" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-1007', 'iterparse', 'link-892');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-1008" 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-1011', 'tag', 'link-73');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">"{}b"</tt><tt class="py-op">,</tt> <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-string">'end'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L825"></a><tt class="py-lineno"> 825</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
-<a name="L826"></a><tt class="py-lineno"> 826</tt>  <tt class="py-line">        <tt id="link-1012" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1012', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-1013" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1013', 'root', 'link-247');">root</a></tt> </tt>
-<a name="L827"></a><tt class="py-lineno"> 827</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L828"></a><tt class="py-lineno"> 828</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 id="link-1014" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1014', 'root', 'link-247');">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 class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1015" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1015', 'root', 'link-247');">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 class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L829"></a><tt class="py-lineno"> 829</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-<a name="L830"></a><tt class="py-lineno"> 830</tt>  <tt class="py-line"> </tt>
-<a name="L831"></a><tt class="py-lineno"> 831</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="urn:test:1"&gt;&lt;b&gt;&lt;d/&gt;&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L832"></a><tt class="py-lineno"> 832</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1016" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-1016', 'iterparse', 'link-895');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-1017" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1008', 'tag', 'link-73');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">"{}b"</tt><tt class="py-op">,</tt> <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-string">'end'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L838"></a><tt class="py-lineno"> 838</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
+<a name="L839"></a><tt class="py-lineno"> 839</tt>  <tt class="py-line">        <tt id="link-1009" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1009', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-1010" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1010', 'root', 'link-247');">root</a></tt> </tt>
+<a name="L840"></a><tt class="py-lineno"> 840</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L841"></a><tt class="py-lineno"> 841</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 id="link-1011" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1011', 'root', 'link-247');">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 class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1012" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1012', 'root', 'link-247');">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 class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L842"></a><tt class="py-lineno"> 842</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+<a name="L843"></a><tt class="py-lineno"> 843</tt>  <tt class="py-line"> </tt>
+<a name="L844"></a><tt class="py-lineno"> 844</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="urn:test:1"&gt;&lt;b&gt;&lt;d/&gt;&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L845"></a><tt class="py-lineno"> 845</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1013" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-1013', 'iterparse', 'link-892');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-1014" 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-1017', 'tag', 'link-73');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">"{}b"</tt><tt class="py-op">,</tt> <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-string">'end'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L833"></a><tt class="py-lineno"> 833</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
-<a name="L834"></a><tt class="py-lineno"> 834</tt>  <tt class="py-line">        <tt id="link-1018" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1018', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-1019" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1019', 'root', 'link-247');">root</a></tt> </tt>
-<a name="L835"></a><tt class="py-lineno"> 835</tt>  <tt class="py-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">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L836"></a><tt class="py-lineno"> 836</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterparse_tag_ns_all"></a><div id="ETreeOnlyTestCase.test_iterparse_tag_ns_all-def"><a name="L837"></a><tt class="py-lineno"> 837</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_tag_ns_all-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_tag_ns_all');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag_ns_all">test_iterparse_tag_ns_all</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterparse_tag_ns_all-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_tag_ns_all-expanded"><a name="L838"></a><tt class="py-lineno"> 838</tt>  <tt class="py-line">        <tt id="link-1020" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-1020', 'iterparse', 'link-895');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1021" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1014', 'tag', 'link-73');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">"{}b"</tt><tt class="py-op">,</tt> <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-string">'end'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L846"></a><tt class="py-lineno"> 846</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
+<a name="L847"></a><tt class="py-lineno"> 847</tt>  <tt class="py-line">        <tt id="link-1015" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1015', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-1016" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1016', 'root', 'link-247');">root</a></tt> </tt>
+<a name="L848"></a><tt class="py-lineno"> 848</tt>  <tt class="py-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">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L849"></a><tt class="py-lineno"> 849</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterparse_tag_ns_all"></a><div id="ETreeOnlyTestCase.test_iterparse_tag_ns_all-def"><a name="L850"></a><tt class="py-lineno"> 850</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_tag_ns_all-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_tag_ns_all');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag_ns_all">test_iterparse_tag_ns_all</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterparse_tag_ns_all-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_tag_ns_all-expanded"><a name="L851"></a><tt class="py-lineno"> 851</tt>  <tt class="py-line">        <tt id="link-1017" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-1017', 'iterparse', 'link-892');">iterparse</a></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.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -3166,22 +3162,22 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1021', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1022" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-1022', 'iterparse', 'link-895');">iterparse</a></tt> </tt>
-<a name="L839"></a><tt class="py-lineno"> 839</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="urn:test:1"&gt;&lt;b&gt;&lt;d/&gt;&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L840"></a><tt class="py-lineno"> 840</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1023" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-1023', 'iterparse', 'link-895');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-1024" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1018', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1019" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-1019', 'iterparse', 'link-892');">iterparse</a></tt> </tt>
+<a name="L852"></a><tt class="py-lineno"> 852</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="urn:test:1"&gt;&lt;b&gt;&lt;d/&gt;&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L853"></a><tt class="py-lineno"> 853</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1020" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-1020', 'iterparse', 'link-892');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-1021" 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-1024', 'tag', 'link-73');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">"{urn:test:1}*"</tt><tt class="py-op">,</tt> <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-string">'end'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L841"></a><tt class="py-lineno"> 841</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
-<a name="L842"></a><tt class="py-lineno"> 842</tt>  <tt class="py-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">8</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L843"></a><tt class="py-lineno"> 843</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterparse_tag_ns_empty_all"></a><div id="ETreeOnlyTestCase.test_iterparse_tag_ns_empty_all-def"><a name="L844"></a><tt class="py-lineno"> 844</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_tag_ns_empty_all-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_tag_ns_empty_all');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag_ns_empty_all">test_iterparse_tag_ns_empty_all</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterparse_tag_ns_empty_all-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_tag_ns_empty_all-expanded"><a name="L845"></a><tt class="py-lineno"> 845</tt>  <tt class="py-line">        <tt id="link-1025" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-1025', 'iterparse', 'link-895');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1026" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1021', 'tag', 'link-73');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">"{urn:test:1}*"</tt><tt class="py-op">,</tt> <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-string">'end'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L854"></a><tt class="py-lineno"> 854</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
+<a name="L855"></a><tt class="py-lineno"> 855</tt>  <tt class="py-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">8</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L856"></a><tt class="py-lineno"> 856</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterparse_tag_ns_empty_all"></a><div id="ETreeOnlyTestCase.test_iterparse_tag_ns_empty_all-def"><a name="L857"></a><tt class="py-lineno"> 857</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_tag_ns_empty_all-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_tag_ns_empty_all');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag_ns_empty_all">test_iterparse_tag_ns_empty_all</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterparse_tag_ns_empty_all-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_tag_ns_empty_all-expanded"><a name="L858"></a><tt class="py-lineno"> 858</tt>  <tt class="py-line">        <tt id="link-1022" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-1022', 'iterparse', 'link-892');">iterparse</a></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
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -3189,45 +3185,45 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1026', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1027" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-1027', 'iterparse', 'link-895');">iterparse</a></tt> </tt>
-<a name="L846"></a><tt class="py-lineno"> 846</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="urn:test:1"&gt;&lt;b&gt;&lt;d/&gt;&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L847"></a><tt class="py-lineno"> 847</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1028" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-1028', 'iterparse', 'link-895');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-1029" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1023', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1024" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-1024', 'iterparse', 'link-892');">iterparse</a></tt> </tt>
+<a name="L859"></a><tt class="py-lineno"> 859</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="urn:test:1"&gt;&lt;b&gt;&lt;d/&gt;&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L860"></a><tt class="py-lineno"> 860</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1025" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-1025', 'iterparse', 'link-892');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-1026" 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-1029', 'tag', 'link-73');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">"{}*"</tt><tt class="py-op">,</tt> <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-string">'end'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L848"></a><tt class="py-lineno"> 848</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
-<a name="L849"></a><tt class="py-lineno"> 849</tt>  <tt class="py-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">events</tt><tt class="py-op">)</tt> </tt>
-<a name="L850"></a><tt class="py-lineno"> 850</tt>  <tt class="py-line"> </tt>
-<a name="L851"></a><tt class="py-lineno"> 851</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;d/&gt;&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L852"></a><tt class="py-lineno"> 852</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1030" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-1030', 'iterparse', 'link-895');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-1031" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1026', 'tag', 'link-73');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">"{}*"</tt><tt class="py-op">,</tt> <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-string">'end'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L861"></a><tt class="py-lineno"> 861</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
+<a name="L862"></a><tt class="py-lineno"> 862</tt>  <tt class="py-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">events</tt><tt class="py-op">)</tt> </tt>
+<a name="L863"></a><tt class="py-lineno"> 863</tt>  <tt class="py-line"> </tt>
+<a name="L864"></a><tt class="py-lineno"> 864</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;d/&gt;&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L865"></a><tt class="py-lineno"> 865</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1027" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-1027', 'iterparse', 'link-892');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-1028" 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-1031', 'tag', 'link-73');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">"{}*"</tt><tt class="py-op">,</tt> <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-string">'end'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L853"></a><tt class="py-lineno"> 853</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
-<a name="L854"></a><tt class="py-lineno"> 854</tt>  <tt class="py-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">8</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L855"></a><tt class="py-lineno"> 855</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterparse_encoding_error"></a><div id="ETreeOnlyTestCase.test_iterparse_encoding_error-def"><a name="L856"></a><tt class="py-lineno"> 856</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_encoding_error-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_encoding_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_iterparse_encoding_error">test_iterparse_encoding_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_iterparse_encoding_error-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_encoding_error-expanded"><a name="L857"></a><tt class="py-lineno"> 857</tt>  <tt class="py-line">        <tt id="link-1032" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1028', 'tag', 'link-73');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">"{}*"</tt><tt class="py-op">,</tt> <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-string">'end'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L866"></a><tt class="py-lineno"> 866</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
+<a name="L867"></a><tt class="py-lineno"> 867</tt>  <tt class="py-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">8</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L868"></a><tt class="py-lineno"> 868</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterparse_encoding_error"></a><div id="ETreeOnlyTestCase.test_iterparse_encoding_error-def"><a name="L869"></a><tt class="py-lineno"> 869</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_encoding_error-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_encoding_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_iterparse_encoding_error">test_iterparse_encoding_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_iterparse_encoding_error-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_encoding_error-expanded"><a name="L870"></a><tt class="py-lineno"> 870</tt>  <tt class="py-line">        <tt id="link-1029" 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-1032', 'text', 'link-205');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-1033" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1033', '_str', 'link-17');">_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="L858"></a><tt class="py-lineno"> 858</tt>  <tt class="py-line">        <tt class="py-name">wrong_declaration</tt> <tt class="py-op">=</tt> <tt class="py-string">"&lt;?xml version='1.0' encoding='UTF-8'?&gt;"</tt> </tt>
-<a name="L859"></a><tt class="py-lineno"> 859</tt>  <tt class="py-line">        <tt class="py-name">xml_latin1</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt id="link-1034" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1034', '_str', 'link-17');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'%s&lt;a&gt;%s&lt;/a&gt;'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">wrong_declaration</tt><tt class="py-op">,</tt> <tt id="link-1035" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1029', 'text', 'link-205');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-1030" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1030', '_str', 'link-17');">_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="L871"></a><tt class="py-lineno"> 871</tt>  <tt class="py-line">        <tt class="py-name">wrong_declaration</tt> <tt class="py-op">=</tt> <tt class="py-string">"&lt;?xml version='1.0' encoding='UTF-8'?&gt;"</tt> </tt>
+<a name="L872"></a><tt class="py-lineno"> 872</tt>  <tt class="py-line">        <tt class="py-name">xml_latin1</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt id="link-1031" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1031', '_str', 'link-17');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'%s&lt;a&gt;%s&lt;/a&gt;'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">wrong_declaration</tt><tt class="py-op">,</tt> <tt id="link-1032" 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-1035', 'text', 'link-205');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L860"></a><tt class="py-lineno"> 860</tt>  <tt class="py-line">                      <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">'iso-8859-1'</tt><tt class="py-op">)</tt> </tt>
-<a name="L861"></a><tt class="py-lineno"> 861</tt>  <tt class="py-line"> </tt>
-<a name="L862"></a><tt class="py-lineno"> 862</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">self</tt><tt class="py-op">.</tt><tt id="link-1036" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1032', 'text', 'link-205');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L873"></a><tt class="py-lineno"> 873</tt>  <tt class="py-line">                      <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">'iso-8859-1'</tt><tt class="py-op">)</tt> </tt>
+<a name="L874"></a><tt class="py-lineno"> 874</tt>  <tt class="py-line"> </tt>
+<a name="L875"></a><tt class="py-lineno"> 875</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">self</tt><tt class="py-op">.</tt><tt id="link-1033" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -3235,9 +3231,9 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1036', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1037" class="py-name" targets="Class lxml.etree.ParseError=lxml.etree.ParseError-class.html,Class xml.etree.ElementTree.ParseError=xml.etree.ElementTree.ParseError-class.html"><a title="lxml.etree.ParseError
-xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-1037', 'ParseError', 'link-1037');">ParseError</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L863"></a><tt class="py-lineno"> 863</tt>  <tt class="py-line">                          <tt class="py-name">list</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1038" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1033', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1034" class="py-name" targets="Class lxml.etree.ParseError=lxml.etree.ParseError-class.html,Class xml.etree.ElementTree.ParseError=xml.etree.ElementTree.ParseError-class.html"><a title="lxml.etree.ParseError
+xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-1034', 'ParseError', 'link-1034');">ParseError</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L876"></a><tt class="py-lineno"> 876</tt>  <tt class="py-line">                          <tt class="py-name">list</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1035" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -3245,26 +3241,26 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1038', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1039" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-1039', 'iterparse', 'link-895');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-name">xml_latin1</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L864"></a><tt class="py-lineno"> 864</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterparse_encoding_8bit_override"></a><div id="ETreeOnlyTestCase.test_iterparse_encoding_8bit_override-def"><a name="L865"></a><tt class="py-lineno"> 865</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_encoding_8bit_override-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_encoding_8bit_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_iterparse_encoding_8bit_override">test_iterparse_encoding_8bit_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_iterparse_encoding_8bit_override-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_encoding_8bit_override-expanded"><a name="L866"></a><tt class="py-lineno"> 866</tt>  <tt class="py-line">        <tt id="link-1040" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1035', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1036" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-1036', 'iterparse', 'link-892');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-name">xml_latin1</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L877"></a><tt class="py-lineno"> 877</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterparse_encoding_8bit_override"></a><div id="ETreeOnlyTestCase.test_iterparse_encoding_8bit_override-def"><a name="L878"></a><tt class="py-lineno"> 878</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_encoding_8bit_override-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_encoding_8bit_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_iterparse_encoding_8bit_override">test_iterparse_encoding_8bit_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_iterparse_encoding_8bit_override-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_encoding_8bit_override-expanded"><a name="L879"></a><tt class="py-lineno"> 879</tt>  <tt class="py-line">        <tt id="link-1037" 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-1040', 'text', 'link-205');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-1041" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1041', '_str', 'link-17');">_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 id="link-1042" class="py-name" targets="Variable lxml.etree.DocInfo.encoding=lxml.etree.DocInfo-class.html#encoding,Function lxml.tests.selftest.encoding()=lxml.tests.selftest-module.html#encoding,Function lxml.tests.selftest2.encoding()=lxml.tests.selftest2-module.html#encoding"><a title="lxml.etree.DocInfo.encoding
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1037', 'text', 'link-205');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-1038" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1038', '_str', 'link-17');">_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 id="link-1039" class="py-name" targets="Variable lxml.etree.DocInfo.encoding=lxml.etree.DocInfo-class.html#encoding,Function lxml.tests.selftest.encoding()=lxml.tests.selftest-module.html#encoding,Function lxml.tests.selftest2.encoding()=lxml.tests.selftest2-module.html#encoding"><a title="lxml.etree.DocInfo.encoding
 lxml.tests.selftest.encoding
-lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-1042', 'encoding', 'link-1042');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"UTF-8"</tt><tt class="py-op">)</tt> </tt>
-<a name="L867"></a><tt class="py-lineno"> 867</tt>  <tt class="py-line">        <tt class="py-name">wrong_declaration</tt> <tt class="py-op">=</tt> <tt class="py-string">"&lt;?xml version='1.0' encoding='UTF-8'?&gt;"</tt> </tt>
-<a name="L868"></a><tt class="py-lineno"> 868</tt>  <tt class="py-line">        <tt class="py-name">xml_latin1</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt id="link-1043" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1043', '_str', 'link-17');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'%s&lt;a&gt;%s&lt;/a&gt;'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">wrong_declaration</tt><tt class="py-op">,</tt> <tt id="link-1044" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-1039', 'encoding', 'link-1039');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"UTF-8"</tt><tt class="py-op">)</tt> </tt>
+<a name="L880"></a><tt class="py-lineno"> 880</tt>  <tt class="py-line">        <tt class="py-name">wrong_declaration</tt> <tt class="py-op">=</tt> <tt class="py-string">"&lt;?xml version='1.0' encoding='UTF-8'?&gt;"</tt> </tt>
+<a name="L881"></a><tt class="py-lineno"> 881</tt>  <tt class="py-line">        <tt class="py-name">xml_latin1</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt id="link-1040" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1040', '_str', 'link-17');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'%s&lt;a&gt;%s&lt;/a&gt;'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">wrong_declaration</tt><tt class="py-op">,</tt> <tt id="link-1041" 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-1044', 'text', 'link-205');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L869"></a><tt class="py-lineno"> 869</tt>  <tt class="py-line">                      <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">'iso-8859-1'</tt><tt class="py-op">)</tt> </tt>
-<a name="L870"></a><tt class="py-lineno"> 870</tt>  <tt class="py-line"> </tt>
-<a name="L871"></a><tt class="py-lineno"> 871</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1045" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1041', 'text', 'link-205');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L882"></a><tt class="py-lineno"> 882</tt>  <tt class="py-line">                      <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">'iso-8859-1'</tt><tt class="py-op">)</tt> </tt>
+<a name="L883"></a><tt class="py-lineno"> 883</tt>  <tt class="py-line"> </tt>
+<a name="L884"></a><tt class="py-lineno"> 884</tt>  <tt class="py-line">        <tt class="py-name">iterator</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
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -3272,27 +3268,27 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1045', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1046" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-1046', 'iterparse', 'link-895');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-name">xml_latin1</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L872"></a><tt class="py-lineno"> 872</tt>  <tt class="py-line">                                        <tt id="link-1047" class="py-name"><a title="lxml.etree.DocInfo.encoding
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1042', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1043" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-1043', 'iterparse', 'link-892');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-name">xml_latin1</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L885"></a><tt class="py-lineno"> 885</tt>  <tt class="py-line">                                        <tt id="link-1044" class="py-name"><a title="lxml.etree.DocInfo.encoding
 lxml.tests.selftest.encoding
-lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-1047', 'encoding', 'link-1042');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"iso-8859-1"</tt><tt class="py-op">)</tt> </tt>
-<a name="L873"></a><tt class="py-lineno"> 873</tt>  <tt class="py-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">1</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">iterator</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L874"></a><tt class="py-lineno"> 874</tt>  <tt class="py-line"> </tt>
-<a name="L875"></a><tt class="py-lineno"> 875</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-1048" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1048', 'root', 'link-247');">root</a></tt> </tt>
-<a name="L876"></a><tt class="py-lineno"> 876</tt>  <tt class="py-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">a</tt><tt class="py-op">.</tt><tt id="link-1049" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-1044', 'encoding', 'link-1039');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"iso-8859-1"</tt><tt class="py-op">)</tt> </tt>
+<a name="L886"></a><tt class="py-lineno"> 886</tt>  <tt class="py-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">1</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">iterator</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L887"></a><tt class="py-lineno"> 887</tt>  <tt class="py-line"> </tt>
+<a name="L888"></a><tt class="py-lineno"> 888</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-1045" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1045', 'root', 'link-247');">root</a></tt> </tt>
+<a name="L889"></a><tt class="py-lineno"> 889</tt>  <tt class="py-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">a</tt><tt class="py-op">.</tt><tt id="link-1046" 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-1049', 'text', 'link-205');">text</a></tt><tt class="py-op">,</tt> <tt id="link-1050" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1046', 'text', 'link-205');">text</a></tt><tt class="py-op">,</tt> <tt id="link-1047" 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-1050', 'text', 'link-205');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L877"></a><tt class="py-lineno"> 877</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterparse_keep_cdata"></a><div id="ETreeOnlyTestCase.test_iterparse_keep_cdata-def"><a name="L878"></a><tt class="py-lineno"> 878</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_keep_cdata-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_keep_cdata');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_keep_cdata">test_iterparse_keep_cdata</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterparse_keep_cdata-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_keep_cdata-expanded"><a name="L879"></a><tt class="py-lineno"> 879</tt>  <tt class="py-line">        <tt id="link-1051" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1051', 'tostring', 'link-237');">tostring</a></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
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1047', 'text', 'link-205');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L890"></a><tt class="py-lineno"> 890</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterparse_keep_cdata"></a><div id="ETreeOnlyTestCase.test_iterparse_keep_cdata-def"><a name="L891"></a><tt class="py-lineno"> 891</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_keep_cdata-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_keep_cdata');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_keep_cdata">test_iterparse_keep_cdata</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterparse_keep_cdata-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_keep_cdata-expanded"><a name="L892"></a><tt class="py-lineno"> 892</tt>  <tt class="py-line">        <tt id="link-1048" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1048', 'tostring', 'link-237');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1049" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -3300,10 +3296,10 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1052', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1053" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1053', 'tostring', 'link-237');">tostring</a></tt> </tt>
-<a name="L880"></a><tt class="py-lineno"> 880</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;root&gt;&lt;![CDATA[test]]&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L881"></a><tt class="py-lineno"> 881</tt>  <tt class="py-line">        <tt class="py-name">context</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
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1049', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1050" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1050', 'tostring', 'link-237');">tostring</a></tt> </tt>
+<a name="L893"></a><tt class="py-lineno"> 893</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;root&gt;&lt;![CDATA[test]]&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L894"></a><tt class="py-lineno"> 894</tt>  <tt class="py-line">        <tt class="py-name">context</tt> <tt class="py-op">=</tt> <tt class="py-name">self</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.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -3311,22 +3307,22 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1054', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1055" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-1055', 'iterparse', 'link-895');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">strip_cdata</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L882"></a><tt class="py-lineno"> 882</tt>  <tt class="py-line">        <tt class="py-name">content</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-1056" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1051', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1052" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-1052', 'iterparse', 'link-892');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">strip_cdata</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L895"></a><tt class="py-lineno"> 895</tt>  <tt class="py-line">        <tt class="py-name">content</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-1053" 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-1056', 'text', 'link-205');">text</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">event</tt><tt class="py-op">,</tt><tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">context</tt> <tt class="py-op">]</tt> </tt>
-<a name="L883"></a><tt class="py-lineno"> 883</tt>  <tt class="py-line"> </tt>
-<a name="L884"></a><tt class="py-lineno"> 884</tt>  <tt class="py-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">'test'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
-<a name="L885"></a><tt class="py-lineno"> 885</tt>  <tt class="py-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-1057" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1057', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;![CDATA[test]]&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L886"></a><tt class="py-lineno"> 886</tt>  <tt class="py-line">                          <tt id="link-1058" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1058', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">.</tt><tt id="link-1059" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1059', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L887"></a><tt class="py-lineno"> 887</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_parser_encoding_unknown"></a><div id="ETreeOnlyTestCase.test_parser_encoding_unknown-def"><a name="L888"></a><tt class="py-lineno"> 888</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parser_encoding_unknown-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parser_encoding_unknown');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_encoding_unknown">test_parser_encoding_unknown</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_parser_encoding_unknown-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parser_encoding_unknown-expanded"><a name="L889"></a><tt class="py-lineno"> 889</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="L890"></a><tt class="py-lineno"> 890</tt>  <tt class="py-line">            <tt class="py-name">LookupError</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
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1053', 'text', 'link-205');">text</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">event</tt><tt class="py-op">,</tt><tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">context</tt> <tt class="py-op">]</tt> </tt>
+<a name="L896"></a><tt class="py-lineno"> 896</tt>  <tt class="py-line"> </tt>
+<a name="L897"></a><tt class="py-lineno"> 897</tt>  <tt class="py-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">'test'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
+<a name="L898"></a><tt class="py-lineno"> 898</tt>  <tt class="py-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-1054" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1054', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;![CDATA[test]]&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L899"></a><tt class="py-lineno"> 899</tt>  <tt class="py-line">                          <tt id="link-1055" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1055', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">.</tt><tt id="link-1056" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1056', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L900"></a><tt class="py-lineno"> 900</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_parser_encoding_unknown"></a><div id="ETreeOnlyTestCase.test_parser_encoding_unknown-def"><a name="L901"></a><tt class="py-lineno"> 901</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parser_encoding_unknown-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parser_encoding_unknown');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_encoding_unknown">test_parser_encoding_unknown</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_parser_encoding_unknown-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parser_encoding_unknown-expanded"><a name="L902"></a><tt class="py-lineno"> 902</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="L903"></a><tt class="py-lineno"> 903</tt>  <tt class="py-line">            <tt class="py-name">LookupError</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1057" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -3334,14 +3330,14 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1060', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1061" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1057', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1058" 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-1061', 'XMLParser', 'link-856');">XMLParser</a></tt><tt class="py-op">,</tt> <tt id="link-1062" class="py-name"><a title="lxml.etree.DocInfo.encoding
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1058', 'XMLParser', 'link-853');">XMLParser</a></tt><tt class="py-op">,</tt> <tt id="link-1059" class="py-name"><a title="lxml.etree.DocInfo.encoding
 lxml.tests.selftest.encoding
-lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-1062', 'encoding', 'link-1042');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"hopefully unknown"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L891"></a><tt class="py-lineno"> 891</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_parser_encoding"></a><div id="ETreeOnlyTestCase.test_parser_encoding-def"><a name="L892"></a><tt class="py-lineno"> 892</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parser_encoding-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parser_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_parser_encoding">test_parser_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_parser_encoding-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parser_encoding-expanded"><a name="L893"></a><tt class="py-lineno"> 893</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1063" class="py-name"><a title="lxml.etree
+lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-1059', 'encoding', 'link-1039');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"hopefully unknown"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L904"></a><tt class="py-lineno"> 904</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_parser_encoding"></a><div id="ETreeOnlyTestCase.test_parser_encoding-def"><a name="L905"></a><tt class="py-lineno"> 905</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parser_encoding-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parser_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_parser_encoding">test_parser_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_parser_encoding-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parser_encoding-expanded"><a name="L906"></a><tt class="py-lineno"> 906</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1060" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -3349,12 +3345,12 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1063', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1064" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1060', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1061" 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-1064', 'XMLParser', 'link-856');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-1065" class="py-name"><a title="lxml.etree.DocInfo.encoding
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1061', 'XMLParser', 'link-853');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-1062" class="py-name"><a title="lxml.etree.DocInfo.encoding
 lxml.tests.selftest.encoding
-lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-1065', 'encoding', 'link-1042');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"ascii"</tt><tt class="py-op">)</tt> </tt>
-<a name="L894"></a><tt class="py-lineno"> 894</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1066" class="py-name"><a title="lxml.etree
+lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-1062', 'encoding', 'link-1039');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"ascii"</tt><tt class="py-op">)</tt> </tt>
+<a name="L907"></a><tt class="py-lineno"> 907</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1063" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -3362,12 +3358,12 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1066', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1067" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1063', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1064" 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-1067', 'XMLParser', 'link-856');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-1068" class="py-name"><a title="lxml.etree.DocInfo.encoding
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1064', 'XMLParser', 'link-853');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-1065" class="py-name"><a title="lxml.etree.DocInfo.encoding
 lxml.tests.selftest.encoding
-lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-1068', 'encoding', 'link-1042');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"utf-8"</tt><tt class="py-op">)</tt> </tt>
-<a name="L895"></a><tt class="py-lineno"> 895</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1069" class="py-name"><a title="lxml.etree
+lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-1065', 'encoding', 'link-1039');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"utf-8"</tt><tt class="py-op">)</tt> </tt>
+<a name="L908"></a><tt class="py-lineno"> 908</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1066" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -3375,15 +3371,15 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1069', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1070" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1066', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1067" 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-1070', 'XMLParser', 'link-856');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-1071" class="py-name"><a title="lxml.etree.DocInfo.encoding
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1067', 'XMLParser', 'link-853');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-1068" class="py-name"><a title="lxml.etree.DocInfo.encoding
 lxml.tests.selftest.encoding
-lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-1071', 'encoding', 'link-1042');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"iso-8859-1"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L896"></a><tt class="py-lineno"> 896</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_feed_parser_recover"></a><div id="ETreeOnlyTestCase.test_feed_parser_recover-def"><a name="L897"></a><tt class="py-lineno"> 897</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_feed_parser_recover-toggle" onclick="return toggle('ETreeOnlyTestCase.test_feed_parser_recover');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_feed_parser_recover">test_feed_parser_recover</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_feed_parser_recover-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_feed_parser_recover-expanded"><a name="L898"></a><tt class="py-lineno"> 898</tt>  <tt class="py-line">        <tt id="link-1072" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1072', 'parser', 'link-861');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1073" class="py-name"><a title="lxml.etree
+lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-1068', 'encoding', 'link-1039');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"iso-8859-1"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L909"></a><tt class="py-lineno"> 909</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_feed_parser_recover"></a><div id="ETreeOnlyTestCase.test_feed_parser_recover-def"><a name="L910"></a><tt class="py-lineno"> 910</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_feed_parser_recover-toggle" onclick="return toggle('ETreeOnlyTestCase.test_feed_parser_recover');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_feed_parser_recover">test_feed_parser_recover</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_feed_parser_recover-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_feed_parser_recover-expanded"><a name="L911"></a><tt class="py-lineno"> 911</tt>  <tt class="py-line">        <tt id="link-1069" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1069', 'parser', 'link-858');">parser</a></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.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -3391,60 +3387,60 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1073', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1074" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1070', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1071" 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-1074', 'XMLParser', 'link-856');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">recover</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L899"></a><tt class="py-lineno"> 899</tt>  <tt class="py-line"> </tt>
-<a name="L900"></a><tt class="py-lineno"> 900</tt>  <tt class="py-line">        <tt id="link-1075" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1075', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1076" class="py-name" targets="Method lxml.etree._FeedParser.feed()=lxml.etree._FeedParser-class.html#feed"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-1076', 'feed', 'link-1076');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;?xml version='</tt><tt class="py-op">)</tt> </tt>
-<a name="L901"></a><tt class="py-lineno"> 901</tt>  <tt class="py-line">        <tt id="link-1077" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1077', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1078" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-1078', 'feed', 'link-1076');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'"1.0"?&gt;&lt;ro'</tt><tt class="py-op">)</tt> </tt>
-<a name="L902"></a><tt class="py-lineno"> 902</tt>  <tt class="py-line">        <tt id="link-1079" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1079', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1080" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-1080', 'feed', 'link-1076');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'ot&gt;&lt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L903"></a><tt class="py-lineno"> 903</tt>  <tt class="py-line">        <tt id="link-1081" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1081', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1082" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-1082', 'feed', 'link-1076');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'a test="works"'</tt><tt class="py-op">)</tt> </tt>
-<a name="L904"></a><tt class="py-lineno"> 904</tt>  <tt class="py-line">        <tt id="link-1083" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1083', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1084" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-1084', 'feed', 'link-1076');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&gt;&lt;othertag/&gt;&lt;/root'</tt><tt class="py-op">)</tt> <tt class="py-comment"># &lt;a&gt; not closed!</tt> </tt>
-<a name="L905"></a><tt class="py-lineno"> 905</tt>  <tt class="py-line">        <tt id="link-1085" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1085', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1086" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-1086', 'feed', 'link-1076');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L906"></a><tt class="py-lineno"> 906</tt>  <tt class="py-line"> </tt>
-<a name="L907"></a><tt class="py-lineno"> 907</tt>  <tt class="py-line">        <tt id="link-1087" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1087', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1088" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1088', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1089" class="py-name" targets="Method lxml.etree.C14NWriterTarget.close()=lxml.etree.C14NWriterTarget-class.html#close,Method lxml.etree.TreeBuilder.close()=lxml.etree.TreeBuilder-class.html#close,Method lxml.etree._FeedParser.close()=lxml.etree._FeedParser-class.html#close,Method lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close()=lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike-class.html#close"><a title="lxml.etree.C14NWriterTarget.close
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1071', 'XMLParser', 'link-853');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">recover</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L912"></a><tt class="py-lineno"> 912</tt>  <tt class="py-line"> </tt>
+<a name="L913"></a><tt class="py-lineno"> 913</tt>  <tt class="py-line">        <tt id="link-1072" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1072', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1073" class="py-name" targets="Method lxml.etree._FeedParser.feed()=lxml.etree._FeedParser-class.html#feed"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-1073', 'feed', 'link-1073');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;?xml version='</tt><tt class="py-op">)</tt> </tt>
+<a name="L914"></a><tt class="py-lineno"> 914</tt>  <tt class="py-line">        <tt id="link-1074" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1074', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1075" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-1075', 'feed', 'link-1073');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'"1.0"?&gt;&lt;ro'</tt><tt class="py-op">)</tt> </tt>
+<a name="L915"></a><tt class="py-lineno"> 915</tt>  <tt class="py-line">        <tt id="link-1076" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1076', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1077" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-1077', 'feed', 'link-1073');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'ot&gt;&lt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L916"></a><tt class="py-lineno"> 916</tt>  <tt class="py-line">        <tt id="link-1078" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1078', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1079" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-1079', 'feed', 'link-1073');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'a test="works"'</tt><tt class="py-op">)</tt> </tt>
+<a name="L917"></a><tt class="py-lineno"> 917</tt>  <tt class="py-line">        <tt id="link-1080" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1080', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1081" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-1081', 'feed', 'link-1073');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&gt;&lt;othertag/&gt;&lt;/root'</tt><tt class="py-op">)</tt> <tt class="py-comment"># &lt;a&gt; not closed!</tt> </tt>
+<a name="L918"></a><tt class="py-lineno"> 918</tt>  <tt class="py-line">        <tt id="link-1082" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1082', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1083" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-1083', 'feed', 'link-1073');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L919"></a><tt class="py-lineno"> 919</tt>  <tt class="py-line"> </tt>
+<a name="L920"></a><tt class="py-lineno"> 920</tt>  <tt class="py-line">        <tt id="link-1084" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1084', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1085" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1085', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1086" class="py-name" targets="Method lxml.etree.C14NWriterTarget.close()=lxml.etree.C14NWriterTarget-class.html#close,Method lxml.etree.TreeBuilder.close()=lxml.etree.TreeBuilder-class.html#close,Method lxml.etree._FeedParser.close()=lxml.etree._FeedParser-class.html#close,Method lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close()=lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike-class.html#close"><a title="lxml.etree.C14NWriterTarget.close
 lxml.etree.TreeBuilder.close
 lxml.etree._FeedParser.close
-lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-1089', 'close', 'link-1089');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L908"></a><tt class="py-lineno"> 908</tt>  <tt class="py-line"> </tt>
-<a name="L909"></a><tt class="py-lineno"> 909</tt>  <tt class="py-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-1090" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1090', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1091" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-1086', 'close', 'link-1086');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L921"></a><tt class="py-lineno"> 921</tt>  <tt class="py-line"> </tt>
+<a name="L922"></a><tt class="py-lineno"> 922</tt>  <tt class="py-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.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1087', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1088" 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-1091', 'tag', 'link-73');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">"root"</tt><tt class="py-op">)</tt> </tt>
-<a name="L910"></a><tt class="py-lineno"> 910</tt>  <tt class="py-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-1092" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1092', 'root', 'link-247');">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="L911"></a><tt class="py-lineno"> 911</tt>  <tt class="py-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-1093" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1093', 'root', 'link-247');">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-1094" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1088', 'tag', 'link-73');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">"root"</tt><tt class="py-op">)</tt> </tt>
+<a name="L923"></a><tt class="py-lineno"> 923</tt>  <tt class="py-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-1089" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1089', 'root', 'link-247');">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="L924"></a><tt class="py-lineno"> 924</tt>  <tt class="py-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-1090" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1090', 'root', 'link-247');">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-1091" 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-1094', 'tag', 'link-73');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">"a"</tt><tt class="py-op">)</tt> </tt>
-<a name="L912"></a><tt class="py-lineno"> 912</tt>  <tt class="py-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-1095" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1095', 'root', 'link-247');">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-1096" class="py-name"><a title="lxml.etree._Attrib.get
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1091', 'tag', 'link-73');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">"a"</tt><tt class="py-op">)</tt> </tt>
+<a name="L925"></a><tt class="py-lineno"> 925</tt>  <tt class="py-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-1092" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1092', 'root', 'link-247');">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-1093" 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-1096', 'get', 'link-270');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"test"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">"works"</tt><tt class="py-op">)</tt> </tt>
-<a name="L913"></a><tt class="py-lineno"> 913</tt>  <tt class="py-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-1097" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1097', 'root', 'link-247');">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 class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-<a name="L914"></a><tt class="py-lineno"> 914</tt>  <tt class="py-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-1098" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1098', 'root', 'link-247');">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 class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1099" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-1093', 'get', 'link-270');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"test"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">"works"</tt><tt class="py-op">)</tt> </tt>
+<a name="L926"></a><tt class="py-lineno"> 926</tt>  <tt class="py-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-1094" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1094', 'root', 'link-247');">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 class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L927"></a><tt class="py-lineno"> 927</tt>  <tt class="py-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-1095" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1095', 'root', 'link-247');">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 class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1096" 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-1099', 'tag', 'link-73');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">"othertag"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L915"></a><tt class="py-lineno"> 915</tt>  <tt class="py-line">        <tt class="py-comment"># FIXME: would be nice to get some errors logged ...</tt> </tt>
-<a name="L916"></a><tt class="py-lineno"> 916</tt>  <tt class="py-line">        <tt class="py-comment">#self.assertTrue(len(parser.error_log) &gt; 0, "error log is empty")</tt> </tt>
-<a name="L917"></a><tt class="py-lineno"> 917</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_feed_parser_recover_no_id_dict"></a><div id="ETreeOnlyTestCase.test_feed_parser_recover_no_id_dict-def"><a name="L918"></a><tt class="py-lineno"> 918</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_feed_parser_recover_no_id_dict-toggle" onclick="return toggle('ETreeOnlyTestCase.test_feed_parser_recover_no_id_dict');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_feed_parser_recover_no_id_dict">test_feed_parser_recover_no_id_dict</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_feed_parser_recover_no_id_dict-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_feed_parser_recover_no_id_dict-expanded"><a name="L919"></a><tt class="py-lineno"> 919</tt>  <tt class="py-line">        <tt class="py-comment"># test that recover mode plays nicely with the no-id-dict setup</tt> </tt>
-<a name="L920"></a><tt class="py-lineno"> 920</tt>  <tt class="py-line">        <tt id="link-1100" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1100', 'parser', 'link-861');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1101" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1096', 'tag', 'link-73');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">"othertag"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L928"></a><tt class="py-lineno"> 928</tt>  <tt class="py-line">        <tt class="py-comment"># FIXME: would be nice to get some errors logged ...</tt> </tt>
+<a name="L929"></a><tt class="py-lineno"> 929</tt>  <tt class="py-line">        <tt class="py-comment">#self.assertTrue(len(parser.error_log) &gt; 0, "error log is empty")</tt> </tt>
+<a name="L930"></a><tt class="py-lineno"> 930</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_feed_parser_recover_no_id_dict"></a><div id="ETreeOnlyTestCase.test_feed_parser_recover_no_id_dict-def"><a name="L931"></a><tt class="py-lineno"> 931</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_feed_parser_recover_no_id_dict-toggle" onclick="return toggle('ETreeOnlyTestCase.test_feed_parser_recover_no_id_dict');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_feed_parser_recover_no_id_dict">test_feed_parser_recover_no_id_dict</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_feed_parser_recover_no_id_dict-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_feed_parser_recover_no_id_dict-expanded"><a name="L932"></a><tt class="py-lineno"> 932</tt>  <tt class="py-line">        <tt class="py-comment"># test that recover mode plays nicely with the no-id-dict setup</tt> </tt>
+<a name="L933"></a><tt class="py-lineno"> 933</tt>  <tt class="py-line">        <tt id="link-1097" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1097', 'parser', 'link-858');">parser</a></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
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -3452,93 +3448,93 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1101', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1102" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1098', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1099" 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-1102', 'XMLParser', 'link-856');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">recover</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">collect_ids</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L921"></a><tt class="py-lineno"> 921</tt>  <tt class="py-line"> </tt>
-<a name="L922"></a><tt class="py-lineno"> 922</tt>  <tt class="py-line">        <tt id="link-1103" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1103', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1104" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-1104', 'feed', 'link-1076');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;?xml version='</tt><tt class="py-op">)</tt> </tt>
-<a name="L923"></a><tt class="py-lineno"> 923</tt>  <tt class="py-line">        <tt id="link-1105" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1105', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1106" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-1106', 'feed', 'link-1076');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'"1.0"?&gt;&lt;ro'</tt><tt class="py-op">)</tt> </tt>
-<a name="L924"></a><tt class="py-lineno"> 924</tt>  <tt class="py-line">        <tt id="link-1107" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1107', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1108" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-1108', 'feed', 'link-1076');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'ot xml:id="123"&gt;&lt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L925"></a><tt class="py-lineno"> 925</tt>  <tt class="py-line">        <tt id="link-1109" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1109', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1110" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-1110', 'feed', 'link-1076');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'a test="works" xml:id='</tt><tt class="py-op">)</tt> </tt>
-<a name="L926"></a><tt class="py-lineno"> 926</tt>  <tt class="py-line">        <tt id="link-1111" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1111', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1112" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-1112', 'feed', 'link-1076');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'"321"&gt;&lt;othertag/&gt;&lt;/root'</tt><tt class="py-op">)</tt> <tt class="py-comment"># &lt;a&gt; not closed!</tt> </tt>
-<a name="L927"></a><tt class="py-lineno"> 927</tt>  <tt class="py-line">        <tt id="link-1113" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1113', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1114" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-1114', 'feed', 'link-1076');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L928"></a><tt class="py-lineno"> 928</tt>  <tt class="py-line"> </tt>
-<a name="L929"></a><tt class="py-lineno"> 929</tt>  <tt class="py-line">        <tt id="link-1115" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1115', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1116" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1116', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1117" class="py-name"><a title="lxml.etree.C14NWriterTarget.close
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1099', 'XMLParser', 'link-853');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">recover</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">collect_ids</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L934"></a><tt class="py-lineno"> 934</tt>  <tt class="py-line"> </tt>
+<a name="L935"></a><tt class="py-lineno"> 935</tt>  <tt class="py-line">        <tt id="link-1100" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1100', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1101" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-1101', 'feed', 'link-1073');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;?xml version='</tt><tt class="py-op">)</tt> </tt>
+<a name="L936"></a><tt class="py-lineno"> 936</tt>  <tt class="py-line">        <tt id="link-1102" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1102', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1103" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-1103', 'feed', 'link-1073');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'"1.0"?&gt;&lt;ro'</tt><tt class="py-op">)</tt> </tt>
+<a name="L937"></a><tt class="py-lineno"> 937</tt>  <tt class="py-line">        <tt id="link-1104" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1104', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1105" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-1105', 'feed', 'link-1073');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'ot xml:id="123"&gt;&lt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L938"></a><tt class="py-lineno"> 938</tt>  <tt class="py-line">        <tt id="link-1106" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1106', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1107" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-1107', 'feed', 'link-1073');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'a test="works" xml:id='</tt><tt class="py-op">)</tt> </tt>
+<a name="L939"></a><tt class="py-lineno"> 939</tt>  <tt class="py-line">        <tt id="link-1108" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1108', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1109" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-1109', 'feed', 'link-1073');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'"321"&gt;&lt;othertag/&gt;&lt;/root'</tt><tt class="py-op">)</tt> <tt class="py-comment"># &lt;a&gt; not closed!</tt> </tt>
+<a name="L940"></a><tt class="py-lineno"> 940</tt>  <tt class="py-line">        <tt id="link-1110" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1110', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1111" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-1111', 'feed', 'link-1073');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L941"></a><tt class="py-lineno"> 941</tt>  <tt class="py-line"> </tt>
+<a name="L942"></a><tt class="py-lineno"> 942</tt>  <tt class="py-line">        <tt id="link-1112" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1112', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1113" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1113', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1114" class="py-name"><a title="lxml.etree.C14NWriterTarget.close
 lxml.etree.TreeBuilder.close
 lxml.etree._FeedParser.close
-lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-1117', 'close', 'link-1089');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L930"></a><tt class="py-lineno"> 930</tt>  <tt class="py-line"> </tt>
-<a name="L931"></a><tt class="py-lineno"> 931</tt>  <tt class="py-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.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1118', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1119" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-1114', 'close', 'link-1086');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L943"></a><tt class="py-lineno"> 943</tt>  <tt class="py-line"> </tt>
+<a name="L944"></a><tt class="py-lineno"> 944</tt>  <tt class="py-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-1115" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1115', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1116" 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-1119', 'tag', 'link-73');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">"root"</tt><tt class="py-op">)</tt> </tt>
-<a name="L932"></a><tt class="py-lineno"> 932</tt>  <tt class="py-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-1120" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1120', 'root', 'link-247');">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="L933"></a><tt class="py-lineno"> 933</tt>  <tt class="py-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-1121" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1121', 'root', 'link-247');">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-1122" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1116', 'tag', 'link-73');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">"root"</tt><tt class="py-op">)</tt> </tt>
+<a name="L945"></a><tt class="py-lineno"> 945</tt>  <tt class="py-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-1117" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1117', 'root', 'link-247');">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="L946"></a><tt class="py-lineno"> 946</tt>  <tt class="py-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.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1118', 'root', 'link-247');">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-1119" 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-1122', 'tag', 'link-73');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">"a"</tt><tt class="py-op">)</tt> </tt>
-<a name="L934"></a><tt class="py-lineno"> 934</tt>  <tt class="py-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-1123" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1123', 'root', 'link-247');">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-1124" class="py-name"><a title="lxml.etree._Attrib.get
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1119', 'tag', 'link-73');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">"a"</tt><tt class="py-op">)</tt> </tt>
+<a name="L947"></a><tt class="py-lineno"> 947</tt>  <tt class="py-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-1120" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1120', 'root', 'link-247');">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-1121" 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-1124', 'get', 'link-270');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"test"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">"works"</tt><tt class="py-op">)</tt> </tt>
-<a name="L935"></a><tt class="py-lineno"> 935</tt>  <tt class="py-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.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1125', 'root', 'link-247');">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-1126" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-1121', 'get', 'link-270');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"test"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">"works"</tt><tt class="py-op">)</tt> </tt>
+<a name="L948"></a><tt class="py-lineno"> 948</tt>  <tt class="py-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-1122" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1122', 'root', 'link-247');">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-1123" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1126', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">,</tt> <tt class="py-op">{</tt> </tt>
-<a name="L936"></a><tt class="py-lineno"> 936</tt>  <tt class="py-line">            <tt class="py-string">'test'</tt><tt class="py-op">:</tt> <tt class="py-string">'works'</tt><tt class="py-op">,</tt> </tt>
-<a name="L937"></a><tt class="py-lineno"> 937</tt>  <tt class="py-line">            <tt class="py-string">'{http://www.w3.org/XML/1998/namespace}id'</tt><tt class="py-op">:</tt> <tt class="py-string">'321'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L938"></a><tt class="py-lineno"> 938</tt>  <tt class="py-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-1127" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1127', 'root', 'link-247');">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 class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-<a name="L939"></a><tt class="py-lineno"> 939</tt>  <tt class="py-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-1128" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1128', 'root', 'link-247');">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 class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1129" 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-1129', 'tag', 'link-73');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">"othertag"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L940"></a><tt class="py-lineno"> 940</tt>  <tt class="py-line">        <tt class="py-comment"># FIXME: would be nice to get some errors logged ...</tt> </tt>
-<a name="L941"></a><tt class="py-lineno"> 941</tt>  <tt class="py-line">        <tt class="py-comment">#self.assertTrue(len(parser.error_log) &gt; 0, "error log is empty")</tt> </tt>
-<a name="L942"></a><tt class="py-lineno"> 942</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_elementtree_parser_target_type_error"></a><div id="ETreeOnlyTestCase.test_elementtree_parser_target_type_error-def"><a name="L943"></a><tt class="py-lineno"> 943</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_elementtree_parser_target_type_error-toggle" onclick="return toggle('ETreeOnlyTestCase.test_elementtree_parser_target_type_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_elementtree_parser_target_type_error">test_elementtree_parser_target_type_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_elementtree_parser_target_type_error-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_elementtree_parser_target_type_error-expanded"><a name="L944"></a><tt class="py-lineno"> 944</tt>  <tt class="py-line">        <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
-<a name="L945"></a><tt class="py-lineno"> 945</tt>  <tt class="py-line">        <tt class="py-name">assertFalse</tt>  <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertFalse</tt> </tt>
-<a name="L946"></a><tt class="py-lineno"> 946</tt>  <tt class="py-line"> </tt>
-<a name="L947"></a><tt class="py-lineno"> 947</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>
-<a name="L948"></a><tt class="py-lineno"> 948</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="L949"></a><tt class="py-lineno"> 949</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="L950"></a><tt class="py-lineno"> 950</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1130" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1130', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start"</tt><tt class="py-op">)</tt> </tt>
-<a name="L951"></a><tt class="py-lineno"> 951</tt>  <tt class="py-line">                <tt class="py-name">assertFalse</tt><tt class="py-op">(</tt><tt id="link-1131" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1123', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">,</tt> <tt class="py-op">{</tt> </tt>
+<a name="L949"></a><tt class="py-lineno"> 949</tt>  <tt class="py-line">            <tt class="py-string">'test'</tt><tt class="py-op">:</tt> <tt class="py-string">'works'</tt><tt class="py-op">,</tt> </tt>
+<a name="L950"></a><tt class="py-lineno"> 950</tt>  <tt class="py-line">            <tt class="py-string">'{http://www.w3.org/XML/1998/namespace}id'</tt><tt class="py-op">:</tt> <tt class="py-string">'321'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L951"></a><tt class="py-lineno"> 951</tt>  <tt class="py-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-1124" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1124', 'root', 'link-247');">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 class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L952"></a><tt class="py-lineno"> 952</tt>  <tt class="py-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.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1125', 'root', 'link-247');">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 class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1126" 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-1126', 'tag', 'link-73');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">"othertag"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L953"></a><tt class="py-lineno"> 953</tt>  <tt class="py-line">        <tt class="py-comment"># FIXME: would be nice to get some errors logged ...</tt> </tt>
+<a name="L954"></a><tt class="py-lineno"> 954</tt>  <tt class="py-line">        <tt class="py-comment">#self.assertTrue(len(parser.error_log) &gt; 0, "error log is empty")</tt> </tt>
+<a name="L955"></a><tt class="py-lineno"> 955</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_elementtree_parser_target_type_error"></a><div id="ETreeOnlyTestCase.test_elementtree_parser_target_type_error-def"><a name="L956"></a><tt class="py-lineno"> 956</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_elementtree_parser_target_type_error-toggle" onclick="return toggle('ETreeOnlyTestCase.test_elementtree_parser_target_type_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_elementtree_parser_target_type_error">test_elementtree_parser_target_type_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_elementtree_parser_target_type_error-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_elementtree_parser_target_type_error-expanded"><a name="L957"></a><tt class="py-lineno"> 957</tt>  <tt class="py-line">        <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
+<a name="L958"></a><tt class="py-lineno"> 958</tt>  <tt class="py-line">        <tt class="py-name">assertFalse</tt>  <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertFalse</tt> </tt>
+<a name="L959"></a><tt class="py-lineno"> 959</tt>  <tt class="py-line"> </tt>
+<a name="L960"></a><tt class="py-lineno"> 960</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>
+<a name="L961"></a><tt class="py-lineno"> 961</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="L962"></a><tt class="py-lineno"> 962</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="L963"></a><tt class="py-lineno"> 963</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1127" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1127', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start"</tt><tt class="py-op">)</tt> </tt>
+<a name="L964"></a><tt class="py-lineno"> 964</tt>  <tt class="py-line">                <tt class="py-name">assertFalse</tt><tt class="py-op">(</tt><tt id="link-1128" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1131', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L952"></a><tt class="py-lineno"> 952</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">,</tt> <tt id="link-1132" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1128', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L965"></a><tt class="py-lineno"> 965</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">,</tt> <tt id="link-1129" 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-1132', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L953"></a><tt class="py-lineno"> 953</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="L954"></a><tt class="py-lineno"> 954</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1133" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1133', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end"</tt><tt class="py-op">)</tt> </tt>
-<a name="L955"></a><tt class="py-lineno"> 955</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">,</tt> <tt id="link-1134" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1129', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L966"></a><tt class="py-lineno"> 966</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="L967"></a><tt class="py-lineno"> 967</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1130" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1130', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end"</tt><tt class="py-op">)</tt> </tt>
+<a name="L968"></a><tt class="py-lineno"> 968</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">,</tt> <tt id="link-1131" 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-1134', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L956"></a><tt class="py-lineno"> 956</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="L957"></a><tt class="py-lineno"> 957</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> <tt class="py-comment"># no Element!</tt> </tt>
-</div></div><a name="L958"></a><tt class="py-lineno"> 958</tt>  <tt class="py-line"> </tt>
-<a name="L959"></a><tt class="py-lineno"> 959</tt>  <tt class="py-line">        <tt id="link-1135" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1135', 'parser', 'link-861');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1136" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1131', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L969"></a><tt class="py-lineno"> 969</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="L970"></a><tt class="py-lineno"> 970</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> <tt class="py-comment"># no Element!</tt> </tt>
+</div></div><a name="L971"></a><tt class="py-lineno"> 971</tt>  <tt class="py-line"> </tt>
+<a name="L972"></a><tt class="py-lineno"> 972</tt>  <tt class="py-line">        <tt id="link-1132" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1132', 'parser', 'link-858');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1133" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -3546,10 +3542,10 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1136', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1137" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1133', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1134" 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-1137', 'XMLParser', 'link-856');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-1138" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-1138', 'target', 'link-727');">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="L960"></a><tt class="py-lineno"> 960</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-1139" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1134', 'XMLParser', 'link-853');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-1135" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-1135', 'target', 'link-724');">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="L973"></a><tt class="py-lineno"> 973</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-1136" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -3557,56 +3553,56 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1139', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1140" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1136', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1137" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1140', 'ElementTree', 'link-573');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L961"></a><tt class="py-lineno"> 961</tt>  <tt class="py-line"> </tt>
-<a name="L962"></a><tt class="py-lineno"> 962</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>
-<a name="L963"></a><tt class="py-lineno"> 963</tt>  <tt class="py-line">                          <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1141" class="py-name"><a title="lxml.etree._ElementTree.parse
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1137', 'ElementTree', 'link-570');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L974"></a><tt class="py-lineno"> 974</tt>  <tt class="py-line"> </tt>
+<a name="L975"></a><tt class="py-lineno"> 975</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>
+<a name="L976"></a><tt class="py-lineno"> 976</tt>  <tt class="py-line">                          <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1138" 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-1141', 'parse', 'link-870');">parse</a></tt><tt class="py-op">,</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">"&lt;TAG/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-1142" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1142', 'parser', 'link-861');">parser</a></tt><tt class="py-op">=</tt><tt id="link-1143" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1143', 'parser', 'link-861');">parser</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L964"></a><tt class="py-lineno"> 964</tt>  <tt class="py-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">"start"</tt><tt class="py-op">,</tt> <tt class="py-string">"end"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L965"></a><tt class="py-lineno"> 965</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_parser_target_feed_exception"></a><div id="ETreeOnlyTestCase.test_parser_target_feed_exception-def"><a name="L966"></a><tt class="py-lineno"> 966</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parser_target_feed_exception-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parser_target_feed_exception');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_feed_exception">test_parser_target_feed_exception</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_parser_target_feed_exception-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parser_target_feed_exception-expanded"><a name="L967"></a><tt class="py-lineno"> 967</tt>  <tt class="py-line">        <tt class="py-comment"># ET doesn't call .close() on errors</tt> </tt>
-<a name="L968"></a><tt class="py-lineno"> 968</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>
-<a name="L969"></a><tt class="py-lineno"> 969</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="L970"></a><tt class="py-lineno"> 970</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="L971"></a><tt class="py-lineno"> 971</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1144" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1144', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start-"</tt> <tt class="py-op">+</tt> <tt id="link-1145" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1138', 'parse', 'link-867');">parse</a></tt><tt class="py-op">,</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">"&lt;TAG/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-1139" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1139', 'parser', 'link-858');">parser</a></tt><tt class="py-op">=</tt><tt id="link-1140" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1140', 'parser', 'link-858');">parser</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L977"></a><tt class="py-lineno"> 977</tt>  <tt class="py-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">"start"</tt><tt class="py-op">,</tt> <tt class="py-string">"end"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L978"></a><tt class="py-lineno"> 978</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_parser_target_feed_exception"></a><div id="ETreeOnlyTestCase.test_parser_target_feed_exception-def"><a name="L979"></a><tt class="py-lineno"> 979</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parser_target_feed_exception-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parser_target_feed_exception');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_feed_exception">test_parser_target_feed_exception</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_parser_target_feed_exception-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parser_target_feed_exception-expanded"><a name="L980"></a><tt class="py-lineno"> 980</tt>  <tt class="py-line">        <tt class="py-comment"># ET doesn't call .close() on errors</tt> </tt>
+<a name="L981"></a><tt class="py-lineno"> 981</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>
+<a name="L982"></a><tt class="py-lineno"> 982</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="L983"></a><tt class="py-lineno"> 983</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="L984"></a><tt class="py-lineno"> 984</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1141" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1141', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start-"</tt> <tt class="py-op">+</tt> <tt id="link-1142" 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-1145', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L972"></a><tt class="py-lineno"> 972</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="L973"></a><tt class="py-lineno"> 973</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1146" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1146', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end-"</tt> <tt class="py-op">+</tt> <tt id="link-1147" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1142', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L985"></a><tt class="py-lineno"> 985</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="L986"></a><tt class="py-lineno"> 986</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1143" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1143', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end-"</tt> <tt class="py-op">+</tt> <tt id="link-1144" 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-1147', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L974"></a><tt class="py-lineno"> 974</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt id="link-1148" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1144', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L987"></a><tt class="py-lineno"> 987</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt id="link-1145" 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-1148', 'tag', 'link-73');">tag</a></tt> <tt class="py-op">==</tt> <tt class="py-string">'a'</tt><tt class="py-op">:</tt> </tt>
-<a name="L975"></a><tt class="py-lineno"> 975</tt>  <tt class="py-line">                    <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt><tt class="py-string">"dead and gone"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L976"></a><tt class="py-lineno"> 976</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">data</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L977"></a><tt class="py-lineno"> 977</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1149" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1149', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"data-"</tt> <tt class="py-op">+</tt> <tt id="link-1150" class="py-name" targets="Method lxml.etree.C14NWriterTarget.data()=lxml.etree.C14NWriterTarget-class.html#data,Method lxml.etree.TreeBuilder.data()=lxml.etree.TreeBuilder-class.html#data"><a title="lxml.etree.C14NWriterTarget.data
-lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-1150', 'data', 'link-1150');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L978"></a><tt class="py-lineno"> 978</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="L979"></a><tt class="py-lineno"> 979</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1151" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1151', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"close"</tt><tt class="py-op">)</tt> </tt>
-<a name="L980"></a><tt class="py-lineno"> 980</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> </tt>
-</div></div><a name="L981"></a><tt class="py-lineno"> 981</tt>  <tt class="py-line"> </tt>
-<a name="L982"></a><tt class="py-lineno"> 982</tt>  <tt class="py-line">        <tt id="link-1152" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1152', 'parser', 'link-861');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1153" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1145', 'tag', 'link-73');">tag</a></tt> <tt class="py-op">==</tt> <tt class="py-string">'a'</tt><tt class="py-op">:</tt> </tt>
+<a name="L988"></a><tt class="py-lineno"> 988</tt>  <tt class="py-line">                    <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt><tt class="py-string">"dead and gone"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L989"></a><tt class="py-lineno"> 989</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">data</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L990"></a><tt class="py-lineno"> 990</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1146" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1146', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"data-"</tt> <tt class="py-op">+</tt> <tt id="link-1147" class="py-name" targets="Method lxml.etree.C14NWriterTarget.data()=lxml.etree.C14NWriterTarget-class.html#data,Method lxml.etree.TreeBuilder.data()=lxml.etree.TreeBuilder-class.html#data"><a title="lxml.etree.C14NWriterTarget.data
+lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-1147', 'data', 'link-1147');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L991"></a><tt class="py-lineno"> 991</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="L992"></a><tt class="py-lineno"> 992</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1148" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1148', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"close"</tt><tt class="py-op">)</tt> </tt>
+<a name="L993"></a><tt class="py-lineno"> 993</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> </tt>
+</div></div><a name="L994"></a><tt class="py-lineno"> 994</tt>  <tt class="py-line"> </tt>
+<a name="L995"></a><tt class="py-lineno"> 995</tt>  <tt class="py-line">        <tt id="link-1149" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1149', 'parser', 'link-858');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1150" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -3614,60 +3610,60 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1153', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1154" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1150', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1151" 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-1154', 'XMLParser', 'link-856');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-1155" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-1155', 'target', 'link-727');">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="L983"></a><tt class="py-lineno"> 983</tt>  <tt class="py-line"> </tt>
-<a name="L984"></a><tt class="py-lineno"> 984</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L985"></a><tt class="py-lineno"> 985</tt>  <tt class="py-line">            <tt id="link-1156" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1156', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1157" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-1157', 'feed', 'link-1076');">feed</a></tt><tt class="py-op">(</tt><tt id="link-1158" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1158', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;A&lt;a&gt;ca&lt;/a&gt;B&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L986"></a><tt class="py-lineno"> 986</tt>  <tt class="py-line">            <tt class="py-name">done</tt> <tt class="py-op">=</tt> <tt id="link-1159" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1159', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1160" class="py-name"><a title="lxml.etree.C14NWriterTarget.close
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1151', 'XMLParser', 'link-853');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-1152" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-1152', 'target', 'link-724');">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="L996"></a><tt class="py-lineno"> 996</tt>  <tt class="py-line"> </tt>
+<a name="L997"></a><tt class="py-lineno"> 997</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L998"></a><tt class="py-lineno"> 998</tt>  <tt class="py-line">            <tt id="link-1153" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1153', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1154" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-1154', 'feed', 'link-1073');">feed</a></tt><tt class="py-op">(</tt><tt id="link-1155" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1155', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;A&lt;a&gt;ca&lt;/a&gt;B&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L999"></a><tt class="py-lineno"> 999</tt>  <tt class="py-line">            <tt class="py-name">done</tt> <tt class="py-op">=</tt> <tt id="link-1156" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1156', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1157" class="py-name"><a title="lxml.etree.C14NWriterTarget.close
 lxml.etree.TreeBuilder.close
 lxml.etree._FeedParser.close
-lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-1160', 'close', 'link-1089');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L987"></a><tt class="py-lineno"> 987</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fail</tt><tt class="py-op">(</tt><tt class="py-string">"error expected, but parsing succeeded"</tt><tt class="py-op">)</tt> </tt>
-<a name="L988"></a><tt class="py-lineno"> 988</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">ValueError</tt><tt class="py-op">:</tt> </tt>
-<a name="L989"></a><tt class="py-lineno"> 989</tt>  <tt class="py-line">            <tt class="py-name">done</tt> <tt class="py-op">=</tt> <tt class="py-string">'value error received as expected'</tt> </tt>
-<a name="L990"></a><tt class="py-lineno"> 990</tt>  <tt class="py-line"> </tt>
-<a name="L991"></a><tt class="py-lineno"> 991</tt>  <tt class="py-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">"start-root"</tt><tt class="py-op">,</tt> <tt class="py-string">"data-A"</tt><tt class="py-op">,</tt> <tt class="py-string">"start-a"</tt><tt class="py-op">,</tt> </tt>
-<a name="L992"></a><tt class="py-lineno"> 992</tt>  <tt class="py-line">                           <tt class="py-string">"data-ca"</tt><tt class="py-op">,</tt> <tt class="py-string">"end-a"</tt><tt class="py-op">,</tt> <tt class="py-string">"close"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L993"></a><tt class="py-lineno"> 993</tt>  <tt class="py-line">                          <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L994"></a><tt class="py-lineno"> 994</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_parser_target_fromstring_exception"></a><div id="ETreeOnlyTestCase.test_parser_target_fromstring_exception-def"><a name="L995"></a><tt class="py-lineno"> 995</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parser_target_fromstring_exception-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parser_target_fromstring_exception');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_fromstring_exception">test_parser_target_fromstring_exception</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_parser_target_fromstring_exception-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parser_target_fromstring_exception-expanded"><a name="L996"></a><tt class="py-lineno"> 996</tt>  <tt class="py-line">        <tt class="py-comment"># ET doesn't call .close() on errors</tt> </tt>
-<a name="L997"></a><tt class="py-lineno"> 997</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>
-<a name="L998"></a><tt class="py-lineno"> 998</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="L999"></a><tt class="py-lineno"> 999</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="L1000"></a><tt class="py-lineno">1000</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1161" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1161', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start-"</tt> <tt class="py-op">+</tt> <tt id="link-1162" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-1157', 'close', 'link-1086');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1000"></a><tt class="py-lineno">1000</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fail</tt><tt class="py-op">(</tt><tt class="py-string">"error expected, but parsing succeeded"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1001"></a><tt class="py-lineno">1001</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">ValueError</tt><tt class="py-op">:</tt> </tt>
+<a name="L1002"></a><tt class="py-lineno">1002</tt>  <tt class="py-line">            <tt class="py-name">done</tt> <tt class="py-op">=</tt> <tt class="py-string">'value error received as expected'</tt> </tt>
+<a name="L1003"></a><tt class="py-lineno">1003</tt>  <tt class="py-line"> </tt>
+<a name="L1004"></a><tt class="py-lineno">1004</tt>  <tt class="py-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">"start-root"</tt><tt class="py-op">,</tt> <tt class="py-string">"data-A"</tt><tt class="py-op">,</tt> <tt class="py-string">"start-a"</tt><tt class="py-op">,</tt> </tt>
+<a name="L1005"></a><tt class="py-lineno">1005</tt>  <tt class="py-line">                           <tt class="py-string">"data-ca"</tt><tt class="py-op">,</tt> <tt class="py-string">"end-a"</tt><tt class="py-op">,</tt> <tt class="py-string">"close"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1006"></a><tt class="py-lineno">1006</tt>  <tt class="py-line">                          <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1007"></a><tt class="py-lineno">1007</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_parser_target_fromstring_exception"></a><div id="ETreeOnlyTestCase.test_parser_target_fromstring_exception-def"><a name="L1008"></a><tt class="py-lineno">1008</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parser_target_fromstring_exception-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parser_target_fromstring_exception');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_fromstring_exception">test_parser_target_fromstring_exception</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_parser_target_fromstring_exception-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parser_target_fromstring_exception-expanded"><a name="L1009"></a><tt class="py-lineno">1009</tt>  <tt class="py-line">        <tt class="py-comment"># ET doesn't call .close() on errors</tt> </tt>
+<a name="L1010"></a><tt class="py-lineno">1010</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>
+<a name="L1011"></a><tt class="py-lineno">1011</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="L1012"></a><tt class="py-lineno">1012</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="L1013"></a><tt class="py-lineno">1013</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1158" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1158', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start-"</tt> <tt class="py-op">+</tt> <tt id="link-1159" 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-1162', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1001"></a><tt class="py-lineno">1001</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="L1002"></a><tt class="py-lineno">1002</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1163" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1163', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end-"</tt> <tt class="py-op">+</tt> <tt id="link-1164" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1159', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1014"></a><tt class="py-lineno">1014</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="L1015"></a><tt class="py-lineno">1015</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1160" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1160', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end-"</tt> <tt class="py-op">+</tt> <tt id="link-1161" 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-1164', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1003"></a><tt class="py-lineno">1003</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt id="link-1165" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1161', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1016"></a><tt class="py-lineno">1016</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt id="link-1162" 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-1165', 'tag', 'link-73');">tag</a></tt> <tt class="py-op">==</tt> <tt class="py-string">'a'</tt><tt class="py-op">:</tt> </tt>
-<a name="L1004"></a><tt class="py-lineno">1004</tt>  <tt class="py-line">                    <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt><tt class="py-string">"dead and gone"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1005"></a><tt class="py-lineno">1005</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">data</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1006"></a><tt class="py-lineno">1006</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1166" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1166', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"data-"</tt> <tt class="py-op">+</tt> <tt id="link-1167" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
-lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-1167', 'data', 'link-1150');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1007"></a><tt class="py-lineno">1007</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="L1008"></a><tt class="py-lineno">1008</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1168" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1168', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"close"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1009"></a><tt class="py-lineno">1009</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> </tt>
-</div></div><a name="L1010"></a><tt class="py-lineno">1010</tt>  <tt class="py-line"> </tt>
-<a name="L1011"></a><tt class="py-lineno">1011</tt>  <tt class="py-line">        <tt id="link-1169" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1169', 'parser', 'link-861');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1170" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1162', 'tag', 'link-73');">tag</a></tt> <tt class="py-op">==</tt> <tt class="py-string">'a'</tt><tt class="py-op">:</tt> </tt>
+<a name="L1017"></a><tt class="py-lineno">1017</tt>  <tt class="py-line">                    <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt><tt class="py-string">"dead and gone"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1018"></a><tt class="py-lineno">1018</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">data</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1019"></a><tt class="py-lineno">1019</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1163" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1163', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"data-"</tt> <tt class="py-op">+</tt> <tt id="link-1164" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
+lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-1164', 'data', 'link-1147');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1020"></a><tt class="py-lineno">1020</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="L1021"></a><tt class="py-lineno">1021</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1165" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1165', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"close"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1022"></a><tt class="py-lineno">1022</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> </tt>
+</div></div><a name="L1023"></a><tt class="py-lineno">1023</tt>  <tt class="py-line"> </tt>
+<a name="L1024"></a><tt class="py-lineno">1024</tt>  <tt class="py-line">        <tt id="link-1166" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1166', 'parser', 'link-858');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1167" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -3675,12 +3671,12 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1170', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1171" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1167', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1168" 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-1171', 'XMLParser', 'link-856');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-1172" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-1172', 'target', 'link-727');">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="L1012"></a><tt class="py-lineno">1012</tt>  <tt class="py-line"> </tt>
-<a name="L1013"></a><tt class="py-lineno">1013</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1014"></a><tt class="py-lineno">1014</tt>  <tt class="py-line">            <tt class="py-name">done</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1173" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1168', 'XMLParser', 'link-853');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-1169" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-1169', 'target', 'link-724');">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="L1025"></a><tt class="py-lineno">1025</tt>  <tt class="py-line"> </tt>
+<a name="L1026"></a><tt class="py-lineno">1026</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1027"></a><tt class="py-lineno">1027</tt>  <tt class="py-line">            <tt class="py-name">done</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1170" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -3688,53 +3684,53 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1173', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1174" class="py-name"><a title="lxml.etree.fromstring
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1170', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1171" 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-1174', 'fromstring', 'link-850');">fromstring</a></tt><tt class="py-op">(</tt><tt id="link-1175" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1175', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;A&lt;a&gt;ca&lt;/a&gt;B&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1015"></a><tt class="py-lineno">1015</tt>  <tt class="py-line">                                         <tt id="link-1176" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1176', 'parser', 'link-861');">parser</a></tt><tt class="py-op">=</tt><tt id="link-1177" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1177', 'parser', 'link-861');">parser</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1016"></a><tt class="py-lineno">1016</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fail</tt><tt class="py-op">(</tt><tt class="py-string">"error expected, but parsing succeeded"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1017"></a><tt class="py-lineno">1017</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">ValueError</tt><tt class="py-op">:</tt> </tt>
-<a name="L1018"></a><tt class="py-lineno">1018</tt>  <tt class="py-line">            <tt class="py-name">done</tt> <tt class="py-op">=</tt> <tt class="py-string">'value error received as expected'</tt> </tt>
-<a name="L1019"></a><tt class="py-lineno">1019</tt>  <tt class="py-line"> </tt>
-<a name="L1020"></a><tt class="py-lineno">1020</tt>  <tt class="py-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">"start-root"</tt><tt class="py-op">,</tt> <tt class="py-string">"data-A"</tt><tt class="py-op">,</tt> <tt class="py-string">"start-a"</tt><tt class="py-op">,</tt> </tt>
-<a name="L1021"></a><tt class="py-lineno">1021</tt>  <tt class="py-line">                          <tt class="py-string">"data-ca"</tt><tt class="py-op">,</tt> <tt class="py-string">"end-a"</tt><tt class="py-op">,</tt> <tt class="py-string">"close"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1022"></a><tt class="py-lineno">1022</tt>  <tt class="py-line">                         <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1023"></a><tt class="py-lineno">1023</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_parser_target_feed_no_id_dict"></a><div id="ETreeOnlyTestCase.test_parser_target_feed_no_id_dict-def"><a name="L1024"></a><tt class="py-lineno">1024</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parser_target_feed_no_id_dict-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parser_target_feed_no_id_dict');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_feed_no_id_dict">test_parser_target_feed_no_id_dict</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_parser_target_feed_no_id_dict-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parser_target_feed_no_id_dict-expanded"><a name="L1025"></a><tt class="py-lineno">1025</tt>  <tt class="py-line">        <tt class="py-comment"># test that target parsing works nicely with the no-id-hash setup</tt> </tt>
-<a name="L1026"></a><tt class="py-lineno">1026</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>
-<a name="L1027"></a><tt class="py-lineno">1027</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="L1028"></a><tt class="py-lineno">1028</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="L1029"></a><tt class="py-lineno">1029</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1178" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1178', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start-"</tt> <tt class="py-op">+</tt> <tt id="link-1179" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-1171', 'fromstring', 'link-847');">fromstring</a></tt><tt class="py-op">(</tt><tt id="link-1172" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1172', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;A&lt;a&gt;ca&lt;/a&gt;B&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1028"></a><tt class="py-lineno">1028</tt>  <tt class="py-line">                                         <tt id="link-1173" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1173', 'parser', 'link-858');">parser</a></tt><tt class="py-op">=</tt><tt id="link-1174" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1174', 'parser', 'link-858');">parser</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1029"></a><tt class="py-lineno">1029</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fail</tt><tt class="py-op">(</tt><tt class="py-string">"error expected, but parsing succeeded"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1030"></a><tt class="py-lineno">1030</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">ValueError</tt><tt class="py-op">:</tt> </tt>
+<a name="L1031"></a><tt class="py-lineno">1031</tt>  <tt class="py-line">            <tt class="py-name">done</tt> <tt class="py-op">=</tt> <tt class="py-string">'value error received as expected'</tt> </tt>
+<a name="L1032"></a><tt class="py-lineno">1032</tt>  <tt class="py-line"> </tt>
+<a name="L1033"></a><tt class="py-lineno">1033</tt>  <tt class="py-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">"start-root"</tt><tt class="py-op">,</tt> <tt class="py-string">"data-A"</tt><tt class="py-op">,</tt> <tt class="py-string">"start-a"</tt><tt class="py-op">,</tt> </tt>
+<a name="L1034"></a><tt class="py-lineno">1034</tt>  <tt class="py-line">                          <tt class="py-string">"data-ca"</tt><tt class="py-op">,</tt> <tt class="py-string">"end-a"</tt><tt class="py-op">,</tt> <tt class="py-string">"close"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1035"></a><tt class="py-lineno">1035</tt>  <tt class="py-line">                         <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1036"></a><tt class="py-lineno">1036</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_parser_target_feed_no_id_dict"></a><div id="ETreeOnlyTestCase.test_parser_target_feed_no_id_dict-def"><a name="L1037"></a><tt class="py-lineno">1037</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parser_target_feed_no_id_dict-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parser_target_feed_no_id_dict');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_feed_no_id_dict">test_parser_target_feed_no_id_dict</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_parser_target_feed_no_id_dict-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parser_target_feed_no_id_dict-expanded"><a name="L1038"></a><tt class="py-lineno">1038</tt>  <tt class="py-line">        <tt class="py-comment"># test that target parsing works nicely with the no-id-hash setup</tt> </tt>
+<a name="L1039"></a><tt class="py-lineno">1039</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>
+<a name="L1040"></a><tt class="py-lineno">1040</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="L1041"></a><tt class="py-lineno">1041</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="L1042"></a><tt class="py-lineno">1042</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1175" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1175', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start-"</tt> <tt class="py-op">+</tt> <tt id="link-1176" 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-1179', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1030"></a><tt class="py-lineno">1030</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="L1031"></a><tt class="py-lineno">1031</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1180" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1180', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end-"</tt> <tt class="py-op">+</tt> <tt id="link-1181" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1176', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1043"></a><tt class="py-lineno">1043</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="L1044"></a><tt class="py-lineno">1044</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1177" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1177', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end-"</tt> <tt class="py-op">+</tt> <tt id="link-1178" 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-1181', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1032"></a><tt class="py-lineno">1032</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">data</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1033"></a><tt class="py-lineno">1033</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1182" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1182', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"data-"</tt> <tt class="py-op">+</tt> <tt id="link-1183" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
-lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-1183', 'data', 'link-1150');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1034"></a><tt class="py-lineno">1034</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">comment</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">text</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1035"></a><tt class="py-lineno">1035</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1184" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1184', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"comment-"</tt> <tt class="py-op">+</tt> <tt id="link-1185" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1178', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1045"></a><tt class="py-lineno">1045</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">data</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1046"></a><tt class="py-lineno">1046</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1179" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1179', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"data-"</tt> <tt class="py-op">+</tt> <tt id="link-1180" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
+lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-1180', 'data', 'link-1147');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1047"></a><tt class="py-lineno">1047</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">comment</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">text</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1048"></a><tt class="py-lineno">1048</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1181" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1181', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"comment-"</tt> <tt class="py-op">+</tt> <tt id="link-1182" 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-1185', 'text', 'link-205');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1036"></a><tt class="py-lineno">1036</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="L1037"></a><tt class="py-lineno">1037</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> </tt>
-</div></div><a name="L1038"></a><tt class="py-lineno">1038</tt>  <tt class="py-line"> </tt>
-<a name="L1039"></a><tt class="py-lineno">1039</tt>  <tt class="py-line">        <tt id="link-1186" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1186', 'parser', 'link-861');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1187" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1182', 'text', 'link-205');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1049"></a><tt class="py-lineno">1049</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="L1050"></a><tt class="py-lineno">1050</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> </tt>
+</div></div><a name="L1051"></a><tt class="py-lineno">1051</tt>  <tt class="py-line"> </tt>
+<a name="L1052"></a><tt class="py-lineno">1052</tt>  <tt class="py-line">        <tt id="link-1183" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1183', 'parser', 'link-858');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1184" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -3742,56 +3738,56 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1187', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1188" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1184', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1185" 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-1188', 'XMLParser', 'link-856');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-1189" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-1189', 'target', 'link-727');">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 class="py-name">collect_ids</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L1040"></a><tt class="py-lineno">1040</tt>  <tt class="py-line"> </tt>
-<a name="L1041"></a><tt class="py-lineno">1041</tt>  <tt class="py-line">        <tt id="link-1190" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1190', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1191" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-1191', 'feed', 'link-1076');">feed</a></tt><tt class="py-op">(</tt><tt id="link-1192" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1192', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--a--&gt;&lt;root xml:id="123"&gt;A&lt;!--b--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1042"></a><tt class="py-lineno">1042</tt>  <tt class="py-line">        <tt id="link-1193" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1193', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1194" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-1194', 'feed', 'link-1076');">feed</a></tt><tt class="py-op">(</tt><tt id="link-1195" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1195', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;sub xml:id="321"/&gt;B&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1043"></a><tt class="py-lineno">1043</tt>  <tt class="py-line">        <tt class="py-name">done</tt> <tt class="py-op">=</tt> <tt id="link-1196" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1196', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1197" class="py-name"><a title="lxml.etree.C14NWriterTarget.close
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1185', 'XMLParser', 'link-853');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-1186" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-1186', 'target', 'link-724');">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 class="py-name">collect_ids</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L1053"></a><tt class="py-lineno">1053</tt>  <tt class="py-line"> </tt>
+<a name="L1054"></a><tt class="py-lineno">1054</tt>  <tt class="py-line">        <tt id="link-1187" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1187', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1188" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-1188', 'feed', 'link-1073');">feed</a></tt><tt class="py-op">(</tt><tt id="link-1189" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1189', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--a--&gt;&lt;root xml:id="123"&gt;A&lt;!--b--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1055"></a><tt class="py-lineno">1055</tt>  <tt class="py-line">        <tt id="link-1190" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1190', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1191" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-1191', 'feed', 'link-1073');">feed</a></tt><tt class="py-op">(</tt><tt id="link-1192" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1192', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;sub xml:id="321"/&gt;B&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1056"></a><tt class="py-lineno">1056</tt>  <tt class="py-line">        <tt class="py-name">done</tt> <tt class="py-op">=</tt> <tt id="link-1193" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1193', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1194" class="py-name"><a title="lxml.etree.C14NWriterTarget.close
 lxml.etree.TreeBuilder.close
 lxml.etree._FeedParser.close
-lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-1197', 'close', 'link-1089');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1044"></a><tt class="py-lineno">1044</tt>  <tt class="py-line"> </tt>
-<a name="L1045"></a><tt class="py-lineno">1045</tt>  <tt class="py-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">"DONE"</tt><tt class="py-op">,</tt> <tt class="py-name">done</tt><tt class="py-op">)</tt> </tt>
-<a name="L1046"></a><tt class="py-lineno">1046</tt>  <tt class="py-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">"comment-a"</tt><tt class="py-op">,</tt> <tt class="py-string">"start-root"</tt><tt class="py-op">,</tt> <tt class="py-string">"data-A"</tt><tt class="py-op">,</tt> <tt class="py-string">"comment-b"</tt><tt class="py-op">,</tt> </tt>
-<a name="L1047"></a><tt class="py-lineno">1047</tt>  <tt class="py-line">                          <tt class="py-string">"start-sub"</tt><tt class="py-op">,</tt> <tt class="py-string">"end-sub"</tt><tt class="py-op">,</tt> <tt class="py-string">"data-B"</tt><tt class="py-op">,</tt> <tt class="py-string">"end-root"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1048"></a><tt class="py-lineno">1048</tt>  <tt class="py-line">                         <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1049"></a><tt class="py-lineno">1049</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_parser_target_comment"></a><div id="ETreeOnlyTestCase.test_parser_target_comment-def"><a name="L1050"></a><tt class="py-lineno">1050</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parser_target_comment-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parser_target_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_parser_target_comment">test_parser_target_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_parser_target_comment-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parser_target_comment-expanded"><a name="L1051"></a><tt class="py-lineno">1051</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>
-<a name="L1052"></a><tt class="py-lineno">1052</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="L1053"></a><tt class="py-lineno">1053</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="L1054"></a><tt class="py-lineno">1054</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1198" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1198', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start-"</tt> <tt class="py-op">+</tt> <tt id="link-1199" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-1194', 'close', 'link-1086');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1057"></a><tt class="py-lineno">1057</tt>  <tt class="py-line"> </tt>
+<a name="L1058"></a><tt class="py-lineno">1058</tt>  <tt class="py-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">"DONE"</tt><tt class="py-op">,</tt> <tt class="py-name">done</tt><tt class="py-op">)</tt> </tt>
+<a name="L1059"></a><tt class="py-lineno">1059</tt>  <tt class="py-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">"comment-a"</tt><tt class="py-op">,</tt> <tt class="py-string">"start-root"</tt><tt class="py-op">,</tt> <tt class="py-string">"data-A"</tt><tt class="py-op">,</tt> <tt class="py-string">"comment-b"</tt><tt class="py-op">,</tt> </tt>
+<a name="L1060"></a><tt class="py-lineno">1060</tt>  <tt class="py-line">                          <tt class="py-string">"start-sub"</tt><tt class="py-op">,</tt> <tt class="py-string">"end-sub"</tt><tt class="py-op">,</tt> <tt class="py-string">"data-B"</tt><tt class="py-op">,</tt> <tt class="py-string">"end-root"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1061"></a><tt class="py-lineno">1061</tt>  <tt class="py-line">                         <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1062"></a><tt class="py-lineno">1062</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_parser_target_comment"></a><div id="ETreeOnlyTestCase.test_parser_target_comment-def"><a name="L1063"></a><tt class="py-lineno">1063</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parser_target_comment-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parser_target_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_parser_target_comment">test_parser_target_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_parser_target_comment-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parser_target_comment-expanded"><a name="L1064"></a><tt class="py-lineno">1064</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>
+<a name="L1065"></a><tt class="py-lineno">1065</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="L1066"></a><tt class="py-lineno">1066</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="L1067"></a><tt class="py-lineno">1067</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1195" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1195', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start-"</tt> <tt class="py-op">+</tt> <tt id="link-1196" 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-1199', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1055"></a><tt class="py-lineno">1055</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="L1056"></a><tt class="py-lineno">1056</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1200" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1200', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end-"</tt> <tt class="py-op">+</tt> <tt id="link-1201" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1196', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1068"></a><tt class="py-lineno">1068</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="L1069"></a><tt class="py-lineno">1069</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1197" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1197', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end-"</tt> <tt class="py-op">+</tt> <tt id="link-1198" 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-1201', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1057"></a><tt class="py-lineno">1057</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">data</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1058"></a><tt class="py-lineno">1058</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1202" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1202', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"data-"</tt> <tt class="py-op">+</tt> <tt id="link-1203" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
-lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-1203', 'data', 'link-1150');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1059"></a><tt class="py-lineno">1059</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">comment</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">text</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1060"></a><tt class="py-lineno">1060</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1204" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1204', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"comment-"</tt> <tt class="py-op">+</tt> <tt id="link-1205" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1198', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1070"></a><tt class="py-lineno">1070</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">data</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1071"></a><tt class="py-lineno">1071</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1199" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1199', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"data-"</tt> <tt class="py-op">+</tt> <tt id="link-1200" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
+lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-1200', 'data', 'link-1147');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1072"></a><tt class="py-lineno">1072</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">comment</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">text</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1073"></a><tt class="py-lineno">1073</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1201" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1201', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"comment-"</tt> <tt class="py-op">+</tt> <tt id="link-1202" 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-1205', 'text', 'link-205');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1061"></a><tt class="py-lineno">1061</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="L1062"></a><tt class="py-lineno">1062</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> </tt>
-</div></div><a name="L1063"></a><tt class="py-lineno">1063</tt>  <tt class="py-line"> </tt>
-<a name="L1064"></a><tt class="py-lineno">1064</tt>  <tt class="py-line">        <tt id="link-1206" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1206', 'parser', 'link-861');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1207" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1202', 'text', 'link-205');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1074"></a><tt class="py-lineno">1074</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="L1075"></a><tt class="py-lineno">1075</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> </tt>
+</div></div><a name="L1076"></a><tt class="py-lineno">1076</tt>  <tt class="py-line"> </tt>
+<a name="L1077"></a><tt class="py-lineno">1077</tt>  <tt class="py-line">        <tt id="link-1203" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1203', 'parser', 'link-858');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1204" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -3799,52 +3795,52 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1207', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1208" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1204', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1205" 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-1208', 'XMLParser', 'link-856');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-1209" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-1209', 'target', 'link-727');">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="L1065"></a><tt class="py-lineno">1065</tt>  <tt class="py-line"> </tt>
-<a name="L1066"></a><tt class="py-lineno">1066</tt>  <tt class="py-line">        <tt id="link-1210" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1210', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1211" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-1211', 'feed', 'link-1076');">feed</a></tt><tt class="py-op">(</tt><tt id="link-1212" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1212', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--a--&gt;&lt;root&gt;A&lt;!--b--&gt;&lt;sub/&gt;&lt;!--c--&gt;B&lt;/root&gt;&lt;!--d--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1067"></a><tt class="py-lineno">1067</tt>  <tt class="py-line">        <tt class="py-name">done</tt> <tt class="py-op">=</tt> <tt id="link-1213" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1213', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1214" class="py-name"><a title="lxml.etree.C14NWriterTarget.close
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1205', 'XMLParser', 'link-853');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-1206" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-1206', 'target', 'link-724');">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="L1078"></a><tt class="py-lineno">1078</tt>  <tt class="py-line"> </tt>
+<a name="L1079"></a><tt class="py-lineno">1079</tt>  <tt class="py-line">        <tt id="link-1207" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1207', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1208" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-1208', 'feed', 'link-1073');">feed</a></tt><tt class="py-op">(</tt><tt id="link-1209" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1209', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--a--&gt;&lt;root&gt;A&lt;!--b--&gt;&lt;sub/&gt;&lt;!--c--&gt;B&lt;/root&gt;&lt;!--d--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1080"></a><tt class="py-lineno">1080</tt>  <tt class="py-line">        <tt class="py-name">done</tt> <tt class="py-op">=</tt> <tt id="link-1210" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1210', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1211" class="py-name"><a title="lxml.etree.C14NWriterTarget.close
 lxml.etree.TreeBuilder.close
 lxml.etree._FeedParser.close
-lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-1214', 'close', 'link-1089');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1068"></a><tt class="py-lineno">1068</tt>  <tt class="py-line"> </tt>
-<a name="L1069"></a><tt class="py-lineno">1069</tt>  <tt class="py-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">"DONE"</tt><tt class="py-op">,</tt> <tt class="py-name">done</tt><tt class="py-op">)</tt> </tt>
-<a name="L1070"></a><tt class="py-lineno">1070</tt>  <tt class="py-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">"comment-a"</tt><tt class="py-op">,</tt> <tt class="py-string">"start-root"</tt><tt class="py-op">,</tt> <tt class="py-string">"data-A"</tt><tt class="py-op">,</tt> <tt class="py-string">"comment-b"</tt><tt class="py-op">,</tt> </tt>
-<a name="L1071"></a><tt class="py-lineno">1071</tt>  <tt class="py-line">                           <tt class="py-string">"start-sub"</tt><tt class="py-op">,</tt> <tt class="py-string">"end-sub"</tt><tt class="py-op">,</tt> <tt class="py-string">"comment-c"</tt><tt class="py-op">,</tt> <tt class="py-string">"data-B"</tt><tt class="py-op">,</tt> </tt>
-<a name="L1072"></a><tt class="py-lineno">1072</tt>  <tt class="py-line">                           <tt class="py-string">"end-root"</tt><tt class="py-op">,</tt> <tt class="py-string">"comment-d"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1073"></a><tt class="py-lineno">1073</tt>  <tt class="py-line">                          <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1074"></a><tt class="py-lineno">1074</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_parser_target_pi"></a><div id="ETreeOnlyTestCase.test_parser_target_pi-def"><a name="L1075"></a><tt class="py-lineno">1075</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parser_target_pi-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parser_target_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_parser_target_pi">test_parser_target_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_parser_target_pi-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parser_target_pi-expanded"><a name="L1076"></a><tt class="py-lineno">1076</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>
-<a name="L1077"></a><tt class="py-lineno">1077</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="L1078"></a><tt class="py-lineno">1078</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="L1079"></a><tt class="py-lineno">1079</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1215" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1215', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start-"</tt> <tt class="py-op">+</tt> <tt id="link-1216" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-1211', 'close', 'link-1086');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1081"></a><tt class="py-lineno">1081</tt>  <tt class="py-line"> </tt>
+<a name="L1082"></a><tt class="py-lineno">1082</tt>  <tt class="py-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">"DONE"</tt><tt class="py-op">,</tt> <tt class="py-name">done</tt><tt class="py-op">)</tt> </tt>
+<a name="L1083"></a><tt class="py-lineno">1083</tt>  <tt class="py-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">"comment-a"</tt><tt class="py-op">,</tt> <tt class="py-string">"start-root"</tt><tt class="py-op">,</tt> <tt class="py-string">"data-A"</tt><tt class="py-op">,</tt> <tt class="py-string">"comment-b"</tt><tt class="py-op">,</tt> </tt>
+<a name="L1084"></a><tt class="py-lineno">1084</tt>  <tt class="py-line">                           <tt class="py-string">"start-sub"</tt><tt class="py-op">,</tt> <tt class="py-string">"end-sub"</tt><tt class="py-op">,</tt> <tt class="py-string">"comment-c"</tt><tt class="py-op">,</tt> <tt class="py-string">"data-B"</tt><tt class="py-op">,</tt> </tt>
+<a name="L1085"></a><tt class="py-lineno">1085</tt>  <tt class="py-line">                           <tt class="py-string">"end-root"</tt><tt class="py-op">,</tt> <tt class="py-string">"comment-d"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1086"></a><tt class="py-lineno">1086</tt>  <tt class="py-line">                          <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1087"></a><tt class="py-lineno">1087</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_parser_target_pi"></a><div id="ETreeOnlyTestCase.test_parser_target_pi-def"><a name="L1088"></a><tt class="py-lineno">1088</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parser_target_pi-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parser_target_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_parser_target_pi">test_parser_target_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_parser_target_pi-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parser_target_pi-expanded"><a name="L1089"></a><tt class="py-lineno">1089</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>
+<a name="L1090"></a><tt class="py-lineno">1090</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="L1091"></a><tt class="py-lineno">1091</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="L1092"></a><tt class="py-lineno">1092</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1212" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1212', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start-"</tt> <tt class="py-op">+</tt> <tt id="link-1213" 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-1216', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1080"></a><tt class="py-lineno">1080</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="L1081"></a><tt class="py-lineno">1081</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1217" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1217', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end-"</tt> <tt class="py-op">+</tt> <tt id="link-1218" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1213', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1093"></a><tt class="py-lineno">1093</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="L1094"></a><tt class="py-lineno">1094</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1214" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1214', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end-"</tt> <tt class="py-op">+</tt> <tt id="link-1215" 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-1218', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1082"></a><tt class="py-lineno">1082</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">data</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1083"></a><tt class="py-lineno">1083</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1219" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1219', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"data-"</tt> <tt class="py-op">+</tt> <tt id="link-1220" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
-lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-1220', 'data', 'link-1150');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1084"></a><tt class="py-lineno">1084</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">pi</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">target</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1085"></a><tt class="py-lineno">1085</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1221" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1221', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"pi-"</tt> <tt class="py-op">+</tt> <tt id="link-1222" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-1222', 'target', 'link-727');">target</a></tt> <tt class="py-op">+</tt> <tt class="py-string">"-"</tt> <tt class="py-op">+</tt> <tt id="link-1223" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
-lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-1223', 'data', 'link-1150');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1086"></a><tt class="py-lineno">1086</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="L1087"></a><tt class="py-lineno">1087</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> </tt>
-</div></div><a name="L1088"></a><tt class="py-lineno">1088</tt>  <tt class="py-line"> </tt>
-<a name="L1089"></a><tt class="py-lineno">1089</tt>  <tt class="py-line">        <tt id="link-1224" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1224', 'parser', 'link-861');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1225" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1215', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1095"></a><tt class="py-lineno">1095</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">data</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1096"></a><tt class="py-lineno">1096</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1216" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1216', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"data-"</tt> <tt class="py-op">+</tt> <tt id="link-1217" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
+lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-1217', 'data', 'link-1147');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1097"></a><tt class="py-lineno">1097</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">pi</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">target</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1098"></a><tt class="py-lineno">1098</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1218" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1218', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"pi-"</tt> <tt class="py-op">+</tt> <tt id="link-1219" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-1219', 'target', 'link-724');">target</a></tt> <tt class="py-op">+</tt> <tt class="py-string">"-"</tt> <tt class="py-op">+</tt> <tt id="link-1220" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
+lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-1220', 'data', 'link-1147');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1099"></a><tt class="py-lineno">1099</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="L1100"></a><tt class="py-lineno">1100</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> </tt>
+</div></div><a name="L1101"></a><tt class="py-lineno">1101</tt>  <tt class="py-line"> </tt>
+<a name="L1102"></a><tt class="py-lineno">1102</tt>  <tt class="py-line">        <tt id="link-1221" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1221', 'parser', 'link-858');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1222" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -3852,48 +3848,48 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1225', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1226" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1222', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1223" 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-1226', 'XMLParser', 'link-856');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-1227" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-1227', 'target', 'link-727');">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="L1090"></a><tt class="py-lineno">1090</tt>  <tt class="py-line"> </tt>
-<a name="L1091"></a><tt class="py-lineno">1091</tt>  <tt class="py-line">        <tt id="link-1228" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1228', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1229" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-1229', 'feed', 'link-1076');">feed</a></tt><tt class="py-op">(</tt><tt id="link-1230" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1230', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;?test a?&gt;&lt;root&gt;A&lt;?test b?&gt;B&lt;/root&gt;&lt;?test c?&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1092"></a><tt class="py-lineno">1092</tt>  <tt class="py-line">        <tt class="py-name">done</tt> <tt class="py-op">=</tt> <tt id="link-1231" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1231', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1232" class="py-name"><a title="lxml.etree.C14NWriterTarget.close
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1223', 'XMLParser', 'link-853');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-1224" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-1224', 'target', 'link-724');">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="L1103"></a><tt class="py-lineno">1103</tt>  <tt class="py-line"> </tt>
+<a name="L1104"></a><tt class="py-lineno">1104</tt>  <tt class="py-line">        <tt id="link-1225" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1225', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1226" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-1226', 'feed', 'link-1073');">feed</a></tt><tt class="py-op">(</tt><tt id="link-1227" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1227', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;?test a?&gt;&lt;root&gt;A&lt;?test b?&gt;B&lt;/root&gt;&lt;?test c?&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1105"></a><tt class="py-lineno">1105</tt>  <tt class="py-line">        <tt class="py-name">done</tt> <tt class="py-op">=</tt> <tt id="link-1228" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1228', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1229" class="py-name"><a title="lxml.etree.C14NWriterTarget.close
 lxml.etree.TreeBuilder.close
 lxml.etree._FeedParser.close
-lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-1232', 'close', 'link-1089');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1093"></a><tt class="py-lineno">1093</tt>  <tt class="py-line"> </tt>
-<a name="L1094"></a><tt class="py-lineno">1094</tt>  <tt class="py-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">"DONE"</tt><tt class="py-op">,</tt> <tt class="py-name">done</tt><tt class="py-op">)</tt> </tt>
-<a name="L1095"></a><tt class="py-lineno">1095</tt>  <tt class="py-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">"pi-test-a"</tt><tt class="py-op">,</tt> <tt class="py-string">"start-root"</tt><tt class="py-op">,</tt> <tt class="py-string">"data-A"</tt><tt class="py-op">,</tt> <tt class="py-string">"pi-test-b"</tt><tt class="py-op">,</tt> </tt>
-<a name="L1096"></a><tt class="py-lineno">1096</tt>  <tt class="py-line">                           <tt class="py-string">"data-B"</tt><tt class="py-op">,</tt> <tt class="py-string">"end-root"</tt><tt class="py-op">,</tt> <tt class="py-string">"pi-test-c"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1097"></a><tt class="py-lineno">1097</tt>  <tt class="py-line">                          <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1098"></a><tt class="py-lineno">1098</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_parser_target_cdata"></a><div id="ETreeOnlyTestCase.test_parser_target_cdata-def"><a name="L1099"></a><tt class="py-lineno">1099</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parser_target_cdata-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parser_target_cdata');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_cdata">test_parser_target_cdata</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_parser_target_cdata-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parser_target_cdata-expanded"><a name="L1100"></a><tt class="py-lineno">1100</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>
-<a name="L1101"></a><tt class="py-lineno">1101</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="L1102"></a><tt class="py-lineno">1102</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="L1103"></a><tt class="py-lineno">1103</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1233" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1233', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start-"</tt> <tt class="py-op">+</tt> <tt id="link-1234" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-1229', 'close', 'link-1086');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1106"></a><tt class="py-lineno">1106</tt>  <tt class="py-line"> </tt>
+<a name="L1107"></a><tt class="py-lineno">1107</tt>  <tt class="py-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">"DONE"</tt><tt class="py-op">,</tt> <tt class="py-name">done</tt><tt class="py-op">)</tt> </tt>
+<a name="L1108"></a><tt class="py-lineno">1108</tt>  <tt class="py-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">"pi-test-a"</tt><tt class="py-op">,</tt> <tt class="py-string">"start-root"</tt><tt class="py-op">,</tt> <tt class="py-string">"data-A"</tt><tt class="py-op">,</tt> <tt class="py-string">"pi-test-b"</tt><tt class="py-op">,</tt> </tt>
+<a name="L1109"></a><tt class="py-lineno">1109</tt>  <tt class="py-line">                           <tt class="py-string">"data-B"</tt><tt class="py-op">,</tt> <tt class="py-string">"end-root"</tt><tt class="py-op">,</tt> <tt class="py-string">"pi-test-c"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1110"></a><tt class="py-lineno">1110</tt>  <tt class="py-line">                          <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1111"></a><tt class="py-lineno">1111</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_parser_target_cdata"></a><div id="ETreeOnlyTestCase.test_parser_target_cdata-def"><a name="L1112"></a><tt class="py-lineno">1112</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parser_target_cdata-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parser_target_cdata');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_cdata">test_parser_target_cdata</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_parser_target_cdata-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parser_target_cdata-expanded"><a name="L1113"></a><tt class="py-lineno">1113</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>
+<a name="L1114"></a><tt class="py-lineno">1114</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="L1115"></a><tt class="py-lineno">1115</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="L1116"></a><tt class="py-lineno">1116</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1230" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1230', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start-"</tt> <tt class="py-op">+</tt> <tt id="link-1231" 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-1234', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1104"></a><tt class="py-lineno">1104</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="L1105"></a><tt class="py-lineno">1105</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1235" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1235', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end-"</tt> <tt class="py-op">+</tt> <tt id="link-1236" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1231', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1117"></a><tt class="py-lineno">1117</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="L1118"></a><tt class="py-lineno">1118</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1232" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1232', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end-"</tt> <tt class="py-op">+</tt> <tt id="link-1233" 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-1236', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1106"></a><tt class="py-lineno">1106</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">data</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1107"></a><tt class="py-lineno">1107</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1237" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1237', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"data-"</tt> <tt class="py-op">+</tt> <tt id="link-1238" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
-lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-1238', 'data', 'link-1150');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1108"></a><tt class="py-lineno">1108</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="L1109"></a><tt class="py-lineno">1109</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> </tt>
-</div></div><a name="L1110"></a><tt class="py-lineno">1110</tt>  <tt class="py-line"> </tt>
-<a name="L1111"></a><tt class="py-lineno">1111</tt>  <tt class="py-line">        <tt id="link-1239" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1239', 'parser', 'link-861');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1240" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1233', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1119"></a><tt class="py-lineno">1119</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">data</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1120"></a><tt class="py-lineno">1120</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1234" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1234', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"data-"</tt> <tt class="py-op">+</tt> <tt id="link-1235" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
+lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-1235', 'data', 'link-1147');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1121"></a><tt class="py-lineno">1121</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="L1122"></a><tt class="py-lineno">1122</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> </tt>
+</div></div><a name="L1123"></a><tt class="py-lineno">1123</tt>  <tt class="py-line"> </tt>
+<a name="L1124"></a><tt class="py-lineno">1124</tt>  <tt class="py-line">        <tt id="link-1236" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1236', 'parser', 'link-858');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1237" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -3901,50 +3897,50 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1240', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1241" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1237', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1238" 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-1241', 'XMLParser', 'link-856');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-1242" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-1242', 'target', 'link-727');">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="L1112"></a><tt class="py-lineno">1112</tt>  <tt class="py-line">                                      <tt class="py-name">strip_cdata</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L1113"></a><tt class="py-lineno">1113</tt>  <tt class="py-line"> </tt>
-<a name="L1114"></a><tt class="py-lineno">1114</tt>  <tt class="py-line">        <tt id="link-1243" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1243', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1244" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-1244', 'feed', 'link-1076');">feed</a></tt><tt class="py-op">(</tt><tt id="link-1245" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1245', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;A&lt;a&gt;&lt;![CDATA[ca]]&gt;&lt;/a&gt;B&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1115"></a><tt class="py-lineno">1115</tt>  <tt class="py-line">        <tt class="py-name">done</tt> <tt class="py-op">=</tt> <tt id="link-1246" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1246', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1247" class="py-name"><a title="lxml.etree.C14NWriterTarget.close
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1238', 'XMLParser', 'link-853');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-1239" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-1239', 'target', 'link-724');">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="L1125"></a><tt class="py-lineno">1125</tt>  <tt class="py-line">                                      <tt class="py-name">strip_cdata</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L1126"></a><tt class="py-lineno">1126</tt>  <tt class="py-line"> </tt>
+<a name="L1127"></a><tt class="py-lineno">1127</tt>  <tt class="py-line">        <tt id="link-1240" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1240', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1241" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-1241', 'feed', 'link-1073');">feed</a></tt><tt class="py-op">(</tt><tt id="link-1242" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1242', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;A&lt;a&gt;&lt;![CDATA[ca]]&gt;&lt;/a&gt;B&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1128"></a><tt class="py-lineno">1128</tt>  <tt class="py-line">        <tt class="py-name">done</tt> <tt class="py-op">=</tt> <tt id="link-1243" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1243', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1244" class="py-name"><a title="lxml.etree.C14NWriterTarget.close
 lxml.etree.TreeBuilder.close
 lxml.etree._FeedParser.close
-lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-1247', 'close', 'link-1089');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1116"></a><tt class="py-lineno">1116</tt>  <tt class="py-line"> </tt>
-<a name="L1117"></a><tt class="py-lineno">1117</tt>  <tt class="py-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">"DONE"</tt><tt class="py-op">,</tt> <tt class="py-name">done</tt><tt class="py-op">)</tt> </tt>
-<a name="L1118"></a><tt class="py-lineno">1118</tt>  <tt class="py-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">"start-root"</tt><tt class="py-op">,</tt> <tt class="py-string">"data-A"</tt><tt class="py-op">,</tt> <tt class="py-string">"start-a"</tt><tt class="py-op">,</tt> </tt>
-<a name="L1119"></a><tt class="py-lineno">1119</tt>  <tt class="py-line">                           <tt class="py-string">"data-ca"</tt><tt class="py-op">,</tt> <tt class="py-string">"end-a"</tt><tt class="py-op">,</tt> <tt class="py-string">"data-B"</tt><tt class="py-op">,</tt> <tt class="py-string">"end-root"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1120"></a><tt class="py-lineno">1120</tt>  <tt class="py-line">                          <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1121"></a><tt class="py-lineno">1121</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_parser_target_recover"></a><div id="ETreeOnlyTestCase.test_parser_target_recover-def"><a name="L1122"></a><tt class="py-lineno">1122</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parser_target_recover-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parser_target_recover');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_recover">test_parser_target_recover</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_parser_target_recover-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parser_target_recover-expanded"><a name="L1123"></a><tt class="py-lineno">1123</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>
-<a name="L1124"></a><tt class="py-lineno">1124</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="L1125"></a><tt class="py-lineno">1125</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="L1126"></a><tt class="py-lineno">1126</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1248" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1248', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start-"</tt> <tt class="py-op">+</tt> <tt id="link-1249" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-1244', 'close', 'link-1086');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1129"></a><tt class="py-lineno">1129</tt>  <tt class="py-line"> </tt>
+<a name="L1130"></a><tt class="py-lineno">1130</tt>  <tt class="py-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">"DONE"</tt><tt class="py-op">,</tt> <tt class="py-name">done</tt><tt class="py-op">)</tt> </tt>
+<a name="L1131"></a><tt class="py-lineno">1131</tt>  <tt class="py-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">"start-root"</tt><tt class="py-op">,</tt> <tt class="py-string">"data-A"</tt><tt class="py-op">,</tt> <tt class="py-string">"start-a"</tt><tt class="py-op">,</tt> </tt>
+<a name="L1132"></a><tt class="py-lineno">1132</tt>  <tt class="py-line">                           <tt class="py-string">"data-ca"</tt><tt class="py-op">,</tt> <tt class="py-string">"end-a"</tt><tt class="py-op">,</tt> <tt class="py-string">"data-B"</tt><tt class="py-op">,</tt> <tt class="py-string">"end-root"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1133"></a><tt class="py-lineno">1133</tt>  <tt class="py-line">                          <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1134"></a><tt class="py-lineno">1134</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_parser_target_recover"></a><div id="ETreeOnlyTestCase.test_parser_target_recover-def"><a name="L1135"></a><tt class="py-lineno">1135</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parser_target_recover-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parser_target_recover');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_recover">test_parser_target_recover</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_parser_target_recover-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parser_target_recover-expanded"><a name="L1136"></a><tt class="py-lineno">1136</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>
+<a name="L1137"></a><tt class="py-lineno">1137</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="L1138"></a><tt class="py-lineno">1138</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="L1139"></a><tt class="py-lineno">1139</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1245" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1245', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start-"</tt> <tt class="py-op">+</tt> <tt id="link-1246" 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-1249', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1127"></a><tt class="py-lineno">1127</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="L1128"></a><tt class="py-lineno">1128</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1250" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1250', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end-"</tt> <tt class="py-op">+</tt> <tt id="link-1251" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1246', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1140"></a><tt class="py-lineno">1140</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="L1141"></a><tt class="py-lineno">1141</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1247" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1247', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end-"</tt> <tt class="py-op">+</tt> <tt id="link-1248" 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-1251', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1129"></a><tt class="py-lineno">1129</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">data</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1130"></a><tt class="py-lineno">1130</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1252" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1252', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"data-"</tt> <tt class="py-op">+</tt> <tt id="link-1253" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
-lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-1253', 'data', 'link-1150');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1131"></a><tt class="py-lineno">1131</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="L1132"></a><tt class="py-lineno">1132</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1254" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1254', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"close"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1133"></a><tt class="py-lineno">1133</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> </tt>
-</div></div><a name="L1134"></a><tt class="py-lineno">1134</tt>  <tt class="py-line"> </tt>
-<a name="L1135"></a><tt class="py-lineno">1135</tt>  <tt class="py-line">        <tt id="link-1255" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1255', 'parser', 'link-861');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1256" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1248', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1142"></a><tt class="py-lineno">1142</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">data</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1143"></a><tt class="py-lineno">1143</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1249" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1249', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"data-"</tt> <tt class="py-op">+</tt> <tt id="link-1250" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
+lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-1250', 'data', 'link-1147');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1144"></a><tt class="py-lineno">1144</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="L1145"></a><tt class="py-lineno">1145</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1251" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1251', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"close"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1146"></a><tt class="py-lineno">1146</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> </tt>
+</div></div><a name="L1147"></a><tt class="py-lineno">1147</tt>  <tt class="py-line"> </tt>
+<a name="L1148"></a><tt class="py-lineno">1148</tt>  <tt class="py-line">        <tt id="link-1252" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1252', 'parser', 'link-858');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1253" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -3952,27 +3948,27 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1256', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1257" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1253', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1254" 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-1257', 'XMLParser', 'link-856');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-1258" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-1258', 'target', 'link-727');">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="L1136"></a><tt class="py-lineno">1136</tt>  <tt class="py-line">                                      <tt class="py-name">recover</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L1137"></a><tt class="py-lineno">1137</tt>  <tt class="py-line"> </tt>
-<a name="L1138"></a><tt class="py-lineno">1138</tt>  <tt class="py-line">        <tt id="link-1259" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1259', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1260" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-1260', 'feed', 'link-1076');">feed</a></tt><tt class="py-op">(</tt><tt id="link-1261" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1261', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;A&lt;a&gt;ca&lt;/a&gt;B&lt;/not-root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1139"></a><tt class="py-lineno">1139</tt>  <tt class="py-line">        <tt class="py-name">done</tt> <tt class="py-op">=</tt> <tt id="link-1262" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1262', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1263" class="py-name"><a title="lxml.etree.C14NWriterTarget.close
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1254', 'XMLParser', 'link-853');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-1255" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-1255', 'target', 'link-724');">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="L1149"></a><tt class="py-lineno">1149</tt>  <tt class="py-line">                                      <tt class="py-name">recover</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L1150"></a><tt class="py-lineno">1150</tt>  <tt class="py-line"> </tt>
+<a name="L1151"></a><tt class="py-lineno">1151</tt>  <tt class="py-line">        <tt id="link-1256" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1256', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1257" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-1257', 'feed', 'link-1073');">feed</a></tt><tt class="py-op">(</tt><tt id="link-1258" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1258', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;A&lt;a&gt;ca&lt;/a&gt;B&lt;/not-root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1152"></a><tt class="py-lineno">1152</tt>  <tt class="py-line">        <tt class="py-name">done</tt> <tt class="py-op">=</tt> <tt id="link-1259" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1259', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1260" class="py-name"><a title="lxml.etree.C14NWriterTarget.close
 lxml.etree.TreeBuilder.close
 lxml.etree._FeedParser.close
-lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-1263', 'close', 'link-1089');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1140"></a><tt class="py-lineno">1140</tt>  <tt class="py-line"> </tt>
-<a name="L1141"></a><tt class="py-lineno">1141</tt>  <tt class="py-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">"DONE"</tt><tt class="py-op">,</tt> <tt class="py-name">done</tt><tt class="py-op">)</tt> </tt>
-<a name="L1142"></a><tt class="py-lineno">1142</tt>  <tt class="py-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">"start-root"</tt><tt class="py-op">,</tt> <tt class="py-string">"data-A"</tt><tt class="py-op">,</tt> <tt class="py-string">"start-a"</tt><tt class="py-op">,</tt> </tt>
-<a name="L1143"></a><tt class="py-lineno">1143</tt>  <tt class="py-line">                           <tt class="py-string">"data-ca"</tt><tt class="py-op">,</tt> <tt class="py-string">"end-a"</tt><tt class="py-op">,</tt> <tt class="py-string">"data-B"</tt><tt class="py-op">,</tt> </tt>
-<a name="L1144"></a><tt class="py-lineno">1144</tt>  <tt class="py-line">                           <tt class="py-string">"end-root"</tt><tt class="py-op">,</tt> <tt class="py-string">"close"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1145"></a><tt class="py-lineno">1145</tt>  <tt class="py-line">                          <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1146"></a><tt class="py-lineno">1146</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterwalk_tag"></a><div id="ETreeOnlyTestCase.test_iterwalk_tag-def"><a name="L1147"></a><tt class="py-lineno">1147</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterwalk_tag-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterwalk_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_iterwalk_tag">test_iterwalk_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_iterwalk_tag-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterwalk_tag-expanded"><a name="L1148"></a><tt class="py-lineno">1148</tt>  <tt class="py-line">        <tt id="link-1264" class="py-name" targets="Class lxml.etree.iterwalk=lxml.etree.iterwalk-class.html"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1264', 'iterwalk', 'link-1264');">iterwalk</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1265" class="py-name"><a title="lxml.etree
+lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-1260', 'close', 'link-1086');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1153"></a><tt class="py-lineno">1153</tt>  <tt class="py-line"> </tt>
+<a name="L1154"></a><tt class="py-lineno">1154</tt>  <tt class="py-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">"DONE"</tt><tt class="py-op">,</tt> <tt class="py-name">done</tt><tt class="py-op">)</tt> </tt>
+<a name="L1155"></a><tt class="py-lineno">1155</tt>  <tt class="py-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">"start-root"</tt><tt class="py-op">,</tt> <tt class="py-string">"data-A"</tt><tt class="py-op">,</tt> <tt class="py-string">"start-a"</tt><tt class="py-op">,</tt> </tt>
+<a name="L1156"></a><tt class="py-lineno">1156</tt>  <tt class="py-line">                           <tt class="py-string">"data-ca"</tt><tt class="py-op">,</tt> <tt class="py-string">"end-a"</tt><tt class="py-op">,</tt> <tt class="py-string">"data-B"</tt><tt class="py-op">,</tt> </tt>
+<a name="L1157"></a><tt class="py-lineno">1157</tt>  <tt class="py-line">                           <tt class="py-string">"end-root"</tt><tt class="py-op">,</tt> <tt class="py-string">"close"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1158"></a><tt class="py-lineno">1158</tt>  <tt class="py-line">                          <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1159"></a><tt class="py-lineno">1159</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterwalk_tag"></a><div id="ETreeOnlyTestCase.test_iterwalk_tag-def"><a name="L1160"></a><tt class="py-lineno">1160</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterwalk_tag-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterwalk_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_iterwalk_tag">test_iterwalk_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_iterwalk_tag-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterwalk_tag-expanded"><a name="L1161"></a><tt class="py-lineno">1161</tt>  <tt class="py-line">        <tt id="link-1261" class="py-name" targets="Class lxml.etree.iterwalk=lxml.etree.iterwalk-class.html"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1261', 'iterwalk', 'link-1261');">iterwalk</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1262" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -3980,8 +3976,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1265', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1266" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1266', 'iterwalk', 'link-1264');">iterwalk</a></tt> </tt>
-<a name="L1149"></a><tt class="py-lineno">1149</tt>  <tt class="py-line">        <tt id="link-1267" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1267', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1268" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1262', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1263" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1263', 'iterwalk', 'link-1261');">iterwalk</a></tt> </tt>
+<a name="L1162"></a><tt class="py-lineno">1162</tt>  <tt class="py-line">        <tt id="link-1264" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1264', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1265" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -3989,24 +3985,24 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1268', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1269" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1265', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1266" 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-1269', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1270" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1270', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;d/&gt;&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1150"></a><tt class="py-lineno">1150</tt>  <tt class="py-line"> </tt>
-<a name="L1151"></a><tt class="py-lineno">1151</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1271" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1271', 'iterwalk', 'link-1264');">iterwalk</a></tt><tt class="py-op">(</tt><tt id="link-1272" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1272', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt id="link-1273" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1266', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1267" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1267', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;d/&gt;&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1163"></a><tt class="py-lineno">1163</tt>  <tt class="py-line"> </tt>
+<a name="L1164"></a><tt class="py-lineno">1164</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1268" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1268', 'iterwalk', 'link-1261');">iterwalk</a></tt><tt class="py-op">(</tt><tt id="link-1269" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1269', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt id="link-1270" 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-1273', 'tag', 'link-73');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">"b"</tt><tt class="py-op">,</tt> <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-string">'end'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1152"></a><tt class="py-lineno">1152</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
-<a name="L1153"></a><tt class="py-lineno">1153</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1154"></a><tt class="py-lineno">1154</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 id="link-1274" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1274', 'root', 'link-247');">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 class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1275" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1275', 'root', 'link-247');">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 class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1155"></a><tt class="py-lineno">1155</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1156"></a><tt class="py-lineno">1156</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterwalk_tag_all"></a><div id="ETreeOnlyTestCase.test_iterwalk_tag_all-def"><a name="L1157"></a><tt class="py-lineno">1157</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterwalk_tag_all-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterwalk_tag_all');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_tag_all">test_iterwalk_tag_all</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterwalk_tag_all-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterwalk_tag_all-expanded"><a name="L1158"></a><tt class="py-lineno">1158</tt>  <tt class="py-line">        <tt id="link-1276" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1276', 'iterwalk', 'link-1264');">iterwalk</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1277" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1270', 'tag', 'link-73');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">"b"</tt><tt class="py-op">,</tt> <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-string">'end'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1165"></a><tt class="py-lineno">1165</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
+<a name="L1166"></a><tt class="py-lineno">1166</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1167"></a><tt class="py-lineno">1167</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 id="link-1271" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1271', 'root', 'link-247');">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 class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1272" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1272', 'root', 'link-247');">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 class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1168"></a><tt class="py-lineno">1168</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1169"></a><tt class="py-lineno">1169</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterwalk_tag_all"></a><div id="ETreeOnlyTestCase.test_iterwalk_tag_all-def"><a name="L1170"></a><tt class="py-lineno">1170</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterwalk_tag_all-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterwalk_tag_all');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_tag_all">test_iterwalk_tag_all</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterwalk_tag_all-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterwalk_tag_all-expanded"><a name="L1171"></a><tt class="py-lineno">1171</tt>  <tt class="py-line">        <tt id="link-1273" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1273', 'iterwalk', 'link-1261');">iterwalk</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1274" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -4014,8 +4010,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1277', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1278" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1278', 'iterwalk', 'link-1264');">iterwalk</a></tt> </tt>
-<a name="L1159"></a><tt class="py-lineno">1159</tt>  <tt class="py-line">        <tt id="link-1279" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1279', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1280" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1274', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1275" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1275', 'iterwalk', 'link-1261');">iterwalk</a></tt> </tt>
+<a name="L1172"></a><tt class="py-lineno">1172</tt>  <tt class="py-line">        <tt id="link-1276" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1276', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1277" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -4023,24 +4019,24 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1280', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1281" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1277', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1278" 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-1281', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1282" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1282', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;d/&gt;&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1160"></a><tt class="py-lineno">1160</tt>  <tt class="py-line"> </tt>
-<a name="L1161"></a><tt class="py-lineno">1161</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1283" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1283', 'iterwalk', 'link-1264');">iterwalk</a></tt><tt class="py-op">(</tt><tt id="link-1284" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1284', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt id="link-1285" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1278', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1279" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1279', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;d/&gt;&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1173"></a><tt class="py-lineno">1173</tt>  <tt class="py-line"> </tt>
+<a name="L1174"></a><tt class="py-lineno">1174</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1280" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1280', 'iterwalk', 'link-1261');">iterwalk</a></tt><tt class="py-op">(</tt><tt id="link-1281" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1281', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt id="link-1282" 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-1285', 'tag', 'link-73');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">"*"</tt><tt class="py-op">,</tt> <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-string">'end'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1162"></a><tt class="py-lineno">1162</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
-<a name="L1163"></a><tt class="py-lineno">1163</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1164"></a><tt class="py-lineno">1164</tt>  <tt class="py-line">            <tt class="py-number">8</tt><tt class="py-op">,</tt> </tt>
-<a name="L1165"></a><tt class="py-lineno">1165</tt>  <tt class="py-line">            <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1166"></a><tt class="py-lineno">1166</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterwalk"></a><div id="ETreeOnlyTestCase.test_iterwalk-def"><a name="L1167"></a><tt class="py-lineno">1167</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterwalk-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterwalk');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk">test_iterwalk</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterwalk-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterwalk-expanded"><a name="L1168"></a><tt class="py-lineno">1168</tt>  <tt class="py-line">        <tt id="link-1286" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1286', 'iterwalk', 'link-1264');">iterwalk</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1287" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1282', 'tag', 'link-73');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">"*"</tt><tt class="py-op">,</tt> <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-string">'end'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1175"></a><tt class="py-lineno">1175</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
+<a name="L1176"></a><tt class="py-lineno">1176</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1177"></a><tt class="py-lineno">1177</tt>  <tt class="py-line">            <tt class="py-number">8</tt><tt class="py-op">,</tt> </tt>
+<a name="L1178"></a><tt class="py-lineno">1178</tt>  <tt class="py-line">            <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1179"></a><tt class="py-lineno">1179</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterwalk"></a><div id="ETreeOnlyTestCase.test_iterwalk-def"><a name="L1180"></a><tt class="py-lineno">1180</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterwalk-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterwalk');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk">test_iterwalk</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterwalk-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterwalk-expanded"><a name="L1181"></a><tt class="py-lineno">1181</tt>  <tt class="py-line">        <tt id="link-1283" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1283', 'iterwalk', 'link-1261');">iterwalk</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1284" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -4048,8 +4044,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1287', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1288" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1288', 'iterwalk', 'link-1264');">iterwalk</a></tt> </tt>
-<a name="L1169"></a><tt class="py-lineno">1169</tt>  <tt class="py-line">        <tt id="link-1289" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1289', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1290" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1284', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1285" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1285', 'iterwalk', 'link-1261');">iterwalk</a></tt> </tt>
+<a name="L1182"></a><tt class="py-lineno">1182</tt>  <tt class="py-line">        <tt id="link-1286" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1286', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1287" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -4057,18 +4053,18 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1290', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1291" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1287', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1288" 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-1291', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1292" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1292', '_bytes', 'link-18');">_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;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1170"></a><tt class="py-lineno">1170</tt>  <tt class="py-line"> </tt>
-<a name="L1171"></a><tt class="py-lineno">1171</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-1293" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1293', 'iterwalk', 'link-1264');">iterwalk</a></tt><tt class="py-op">(</tt><tt id="link-1294" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1294', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1172"></a><tt class="py-lineno">1172</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1173"></a><tt class="py-lineno">1173</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 id="link-1295" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1295', 'root', 'link-247');">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 class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1296" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1296', 'root', 'link-247');">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 class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1297" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1297', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1174"></a><tt class="py-lineno">1174</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1175"></a><tt class="py-lineno">1175</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterwalk_comments_root_element"></a><div id="ETreeOnlyTestCase.test_iterwalk_comments_root_element-def"><a name="L1176"></a><tt class="py-lineno">1176</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterwalk_comments_root_element-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterwalk_comments_root_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_iterwalk_comments_root_element">test_iterwalk_comments_root_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_iterwalk_comments_root_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterwalk_comments_root_element-expanded"><a name="L1177"></a><tt class="py-lineno">1177</tt>  <tt class="py-line">        <tt id="link-1298" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1298', 'iterwalk', 'link-1264');">iterwalk</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1299" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1288', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1289" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1289', '_bytes', 'link-18');">_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;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1183"></a><tt class="py-lineno">1183</tt>  <tt class="py-line"> </tt>
+<a name="L1184"></a><tt class="py-lineno">1184</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-1290" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1290', 'iterwalk', 'link-1261');">iterwalk</a></tt><tt class="py-op">(</tt><tt id="link-1291" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1291', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1185"></a><tt class="py-lineno">1185</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1186"></a><tt class="py-lineno">1186</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 id="link-1292" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1292', 'root', 'link-247');">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 class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1293" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1293', 'root', 'link-247');">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 class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1294" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1294', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1187"></a><tt class="py-lineno">1187</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1188"></a><tt class="py-lineno">1188</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterwalk_comments_root_element"></a><div id="ETreeOnlyTestCase.test_iterwalk_comments_root_element-def"><a name="L1189"></a><tt class="py-lineno">1189</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterwalk_comments_root_element-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterwalk_comments_root_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_iterwalk_comments_root_element">test_iterwalk_comments_root_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_iterwalk_comments_root_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterwalk_comments_root_element-expanded"><a name="L1190"></a><tt class="py-lineno">1190</tt>  <tt class="py-line">        <tt id="link-1295" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1295', 'iterwalk', 'link-1261');">iterwalk</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1296" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -4076,8 +4072,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1299', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1300" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1300', 'iterwalk', 'link-1264');">iterwalk</a></tt> </tt>
-<a name="L1178"></a><tt class="py-lineno">1178</tt>  <tt class="py-line">        <tt id="link-1301" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1301', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1302" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1296', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1297" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1297', 'iterwalk', 'link-1261');">iterwalk</a></tt> </tt>
+<a name="L1191"></a><tt class="py-lineno">1191</tt>  <tt class="py-line">        <tt id="link-1298" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1298', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1299" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -4085,24 +4081,24 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1302', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1303" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1299', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1300" 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-1303', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1179"></a><tt class="py-lineno">1179</tt>  <tt class="py-line">            <tt class="py-string">b'&lt;!--C0--&gt;&lt;a&gt;&lt;!--Ca--&gt;&lt;b&gt;&lt;!--Cb--&gt;&lt;/b&gt;&lt;!--Cc--&gt;&lt;c/&gt;&lt;/a&gt;&lt;!--C99--&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1180"></a><tt class="py-lineno">1180</tt>  <tt class="py-line"> </tt>
-<a name="L1181"></a><tt class="py-lineno">1181</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1304" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1304', 'iterwalk', 'link-1264');">iterwalk</a></tt><tt class="py-op">(</tt><tt id="link-1305" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1305', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <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-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'comment'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1182"></a><tt class="py-lineno">1182</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
-<a name="L1183"></a><tt class="py-lineno">1183</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1184"></a><tt class="py-lineno">1184</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 id="link-1306" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1306', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'comment'</tt><tt class="py-op">,</tt> <tt id="link-1307" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1307', 'root', 'link-247');">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 class="py-op">,</tt> </tt>
-<a name="L1185"></a><tt class="py-lineno">1185</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-1308" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1308', 'root', 'link-247');">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 class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'comment'</tt><tt class="py-op">,</tt> <tt id="link-1309" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1309', 'root', 'link-247');">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 class="py-number">0</tt><tt class="py-op">]</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 id="link-1310" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1310', 'root', 'link-247');">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 class="py-op">,</tt> </tt>
-<a name="L1186"></a><tt class="py-lineno">1186</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'comment'</tt><tt class="py-op">,</tt> <tt id="link-1311" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1311', 'root', 'link-247');">root</a></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-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-1312" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1312', 'root', 'link-247');">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 class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1313" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1313', 'root', 'link-247');">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 class="py-op">,</tt> </tt>
-<a name="L1187"></a><tt class="py-lineno">1187</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1314" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1314', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1188"></a><tt class="py-lineno">1188</tt>  <tt class="py-line">             <tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1189"></a><tt class="py-lineno">1189</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1190"></a><tt class="py-lineno">1190</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterwalk_comments_tree"></a><div id="ETreeOnlyTestCase.test_iterwalk_comments_tree-def"><a name="L1191"></a><tt class="py-lineno">1191</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterwalk_comments_tree-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterwalk_comments_tree');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_comments_tree">test_iterwalk_comments_tree</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterwalk_comments_tree-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterwalk_comments_tree-expanded"><a name="L1192"></a><tt class="py-lineno">1192</tt>  <tt class="py-line">        <tt id="link-1315" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1315', 'iterwalk', 'link-1264');">iterwalk</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1316" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1300', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1192"></a><tt class="py-lineno">1192</tt>  <tt class="py-line">            <tt class="py-string">b'&lt;!--C0--&gt;&lt;a&gt;&lt;!--Ca--&gt;&lt;b&gt;&lt;!--Cb--&gt;&lt;/b&gt;&lt;!--Cc--&gt;&lt;c/&gt;&lt;/a&gt;&lt;!--C99--&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1193"></a><tt class="py-lineno">1193</tt>  <tt class="py-line"> </tt>
+<a name="L1194"></a><tt class="py-lineno">1194</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1301" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1301', 'iterwalk', 'link-1261');">iterwalk</a></tt><tt class="py-op">(</tt><tt id="link-1302" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1302', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <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-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'comment'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1195"></a><tt class="py-lineno">1195</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
+<a name="L1196"></a><tt class="py-lineno">1196</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1197"></a><tt class="py-lineno">1197</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 id="link-1303" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1303', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'comment'</tt><tt class="py-op">,</tt> <tt id="link-1304" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1304', 'root', 'link-247');">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 class="py-op">,</tt> </tt>
+<a name="L1198"></a><tt class="py-lineno">1198</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-1305" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1305', 'root', 'link-247');">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 class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'comment'</tt><tt class="py-op">,</tt> <tt id="link-1306" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1306', 'root', 'link-247');">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 class="py-number">0</tt><tt class="py-op">]</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 id="link-1307" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1307', 'root', 'link-247');">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 class="py-op">,</tt> </tt>
+<a name="L1199"></a><tt class="py-lineno">1199</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'comment'</tt><tt class="py-op">,</tt> <tt id="link-1308" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1308', 'root', 'link-247');">root</a></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-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-1309" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1309', 'root', 'link-247');">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 class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1310" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1310', 'root', 'link-247');">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 class="py-op">,</tt> </tt>
+<a name="L1200"></a><tt class="py-lineno">1200</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1311" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1311', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1201"></a><tt class="py-lineno">1201</tt>  <tt class="py-line">             <tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1202"></a><tt class="py-lineno">1202</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1203"></a><tt class="py-lineno">1203</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterwalk_comments_tree"></a><div id="ETreeOnlyTestCase.test_iterwalk_comments_tree-def"><a name="L1204"></a><tt class="py-lineno">1204</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterwalk_comments_tree-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterwalk_comments_tree');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_comments_tree">test_iterwalk_comments_tree</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterwalk_comments_tree-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterwalk_comments_tree-expanded"><a name="L1205"></a><tt class="py-lineno">1205</tt>  <tt class="py-line">        <tt id="link-1312" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1312', 'iterwalk', 'link-1261');">iterwalk</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1313" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -4110,8 +4106,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1316', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1317" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1317', 'iterwalk', 'link-1264');">iterwalk</a></tt> </tt>
-<a name="L1193"></a><tt class="py-lineno">1193</tt>  <tt class="py-line">        <tt id="link-1318" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1318', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1319" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1313', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1314" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1314', 'iterwalk', 'link-1261');">iterwalk</a></tt> </tt>
+<a name="L1206"></a><tt class="py-lineno">1206</tt>  <tt class="py-line">        <tt id="link-1315" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1315', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1316" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -4119,13 +4115,13 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1319', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1320" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1316', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1317" 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-1320', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1194"></a><tt class="py-lineno">1194</tt>  <tt class="py-line">            <tt class="py-string">b'&lt;!--C0--&gt;&lt;a&gt;&lt;!--Ca--&gt;&lt;b&gt;&lt;!--Cb--&gt;&lt;/b&gt;&lt;!--Cc--&gt;&lt;c/&gt;&lt;/a&gt;&lt;!--C99--&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1195"></a><tt class="py-lineno">1195</tt>  <tt class="py-line"> </tt>
-<a name="L1196"></a><tt class="py-lineno">1196</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1321" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1321', 'iterwalk', 'link-1264');">iterwalk</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1322" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1317', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1207"></a><tt class="py-lineno">1207</tt>  <tt class="py-line">            <tt class="py-string">b'&lt;!--C0--&gt;&lt;a&gt;&lt;!--Ca--&gt;&lt;b&gt;&lt;!--Cb--&gt;&lt;/b&gt;&lt;!--Cc--&gt;&lt;c/&gt;&lt;/a&gt;&lt;!--C99--&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1208"></a><tt class="py-lineno">1208</tt>  <tt class="py-line"> </tt>
+<a name="L1209"></a><tt class="py-lineno">1209</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1318" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1318', 'iterwalk', 'link-1261');">iterwalk</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1319" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -4133,21 +4129,21 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1322', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1323" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1319', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1320" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1323', 'ElementTree', 'link-573');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-1324" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1324', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <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-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'comment'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1197"></a><tt class="py-lineno">1197</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
-<a name="L1198"></a><tt class="py-lineno">1198</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1199"></a><tt class="py-lineno">1199</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'comment'</tt><tt class="py-op">,</tt> <tt id="link-1325" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1325', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1326" 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-1326', 'getprevious', 'link-1326');">getprevious</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="L1200"></a><tt class="py-lineno">1200</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-1327" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1327', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'comment'</tt><tt class="py-op">,</tt> <tt id="link-1328" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1328', 'root', 'link-247');">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 class="py-op">,</tt>  <tt class="py-comment"># &lt;a&gt;</tt> </tt>
-<a name="L1201"></a><tt class="py-lineno">1201</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-1329" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1329', 'root', 'link-247');">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 class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'comment'</tt><tt class="py-op">,</tt> <tt id="link-1330" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1330', 'root', 'link-247');">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 class="py-number">0</tt><tt class="py-op">]</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 id="link-1331" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1331', 'root', 'link-247');">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 class="py-op">,</tt>  <tt class="py-comment"># &lt;b&gt;</tt> </tt>
-<a name="L1202"></a><tt class="py-lineno">1202</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'comment'</tt><tt class="py-op">,</tt> <tt id="link-1332" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1332', 'root', 'link-247');">root</a></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-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-1333" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1333', 'root', 'link-247');">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 class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1334" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1334', 'root', 'link-247');">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 class="py-op">,</tt>  <tt class="py-comment"># &lt;c&gt;</tt> </tt>
-<a name="L1203"></a><tt class="py-lineno">1203</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1335" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1335', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'comment'</tt><tt class="py-op">,</tt> <tt id="link-1336" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1336', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1337" 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-1337', 'getnext', 'link-1337');">getnext</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="L1204"></a><tt class="py-lineno">1204</tt>  <tt class="py-line">             <tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1205"></a><tt class="py-lineno">1205</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1206"></a><tt class="py-lineno">1206</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterwalk_pis_root_element"></a><div id="ETreeOnlyTestCase.test_iterwalk_pis_root_element-def"><a name="L1207"></a><tt class="py-lineno">1207</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterwalk_pis_root_element-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterwalk_pis_root_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_iterwalk_pis_root_element">test_iterwalk_pis_root_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_iterwalk_pis_root_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterwalk_pis_root_element-expanded"><a name="L1208"></a><tt class="py-lineno">1208</tt>  <tt class="py-line">        <tt id="link-1338" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1338', 'iterwalk', 'link-1264');">iterwalk</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1339" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1320', 'ElementTree', 'link-570');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-1321" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1321', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <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-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'comment'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1210"></a><tt class="py-lineno">1210</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
+<a name="L1211"></a><tt class="py-lineno">1211</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1212"></a><tt class="py-lineno">1212</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'comment'</tt><tt class="py-op">,</tt> <tt id="link-1322" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1322', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1323" 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-1323', 'getprevious', 'link-1323');">getprevious</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="L1213"></a><tt class="py-lineno">1213</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-1324" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1324', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'comment'</tt><tt class="py-op">,</tt> <tt id="link-1325" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1325', 'root', 'link-247');">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 class="py-op">,</tt>  <tt class="py-comment"># &lt;a&gt;</tt> </tt>
+<a name="L1214"></a><tt class="py-lineno">1214</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-1326" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1326', 'root', 'link-247');">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 class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'comment'</tt><tt class="py-op">,</tt> <tt id="link-1327" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1327', 'root', 'link-247');">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 class="py-number">0</tt><tt class="py-op">]</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 id="link-1328" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1328', 'root', 'link-247');">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 class="py-op">,</tt>  <tt class="py-comment"># &lt;b&gt;</tt> </tt>
+<a name="L1215"></a><tt class="py-lineno">1215</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'comment'</tt><tt class="py-op">,</tt> <tt id="link-1329" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1329', 'root', 'link-247');">root</a></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-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-1330" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1330', 'root', 'link-247');">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 class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1331" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1331', 'root', 'link-247');">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 class="py-op">,</tt>  <tt class="py-comment"># &lt;c&gt;</tt> </tt>
+<a name="L1216"></a><tt class="py-lineno">1216</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1332" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1332', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'comment'</tt><tt class="py-op">,</tt> <tt id="link-1333" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1333', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1334" 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-1334', 'getnext', 'link-1334');">getnext</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="L1217"></a><tt class="py-lineno">1217</tt>  <tt class="py-line">             <tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1218"></a><tt class="py-lineno">1218</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1219"></a><tt class="py-lineno">1219</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterwalk_pis_root_element"></a><div id="ETreeOnlyTestCase.test_iterwalk_pis_root_element-def"><a name="L1220"></a><tt class="py-lineno">1220</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterwalk_pis_root_element-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterwalk_pis_root_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_iterwalk_pis_root_element">test_iterwalk_pis_root_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_iterwalk_pis_root_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterwalk_pis_root_element-expanded"><a name="L1221"></a><tt class="py-lineno">1221</tt>  <tt class="py-line">        <tt id="link-1335" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1335', 'iterwalk', 'link-1261');">iterwalk</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1336" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -4155,8 +4151,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1339', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1340" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1340', 'iterwalk', 'link-1264');">iterwalk</a></tt> </tt>
-<a name="L1209"></a><tt class="py-lineno">1209</tt>  <tt class="py-line">        <tt id="link-1341" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1341', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1342" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1336', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1337" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1337', 'iterwalk', 'link-1261');">iterwalk</a></tt> </tt>
+<a name="L1222"></a><tt class="py-lineno">1222</tt>  <tt class="py-line">        <tt id="link-1338" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1338', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1339" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -4164,24 +4160,24 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1342', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1343" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1339', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1340" 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-1343', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1210"></a><tt class="py-lineno">1210</tt>  <tt class="py-line">            <tt class="py-string">b'&lt;?C0?&gt;&lt;a&gt;&lt;?Ca?&gt;&lt;b&gt;&lt;?Cb?&gt;&lt;/b&gt;&lt;?Cc?&gt;&lt;c/&gt;&lt;/a&gt;&lt;?C99?&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1211"></a><tt class="py-lineno">1211</tt>  <tt class="py-line"> </tt>
-<a name="L1212"></a><tt class="py-lineno">1212</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1344" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1344', 'iterwalk', 'link-1264');">iterwalk</a></tt><tt class="py-op">(</tt><tt id="link-1345" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1345', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <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-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'pi'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1213"></a><tt class="py-lineno">1213</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
-<a name="L1214"></a><tt class="py-lineno">1214</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1215"></a><tt class="py-lineno">1215</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 id="link-1346" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1346', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'pi'</tt><tt class="py-op">,</tt> <tt id="link-1347" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1347', 'root', 'link-247');">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 class="py-op">,</tt> </tt>
-<a name="L1216"></a><tt class="py-lineno">1216</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-1348" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1348', 'root', 'link-247');">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 class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'pi'</tt><tt class="py-op">,</tt> <tt id="link-1349" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1349', 'root', 'link-247');">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 class="py-number">0</tt><tt class="py-op">]</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 id="link-1350" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1350', 'root', 'link-247');">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 class="py-op">,</tt> </tt>
-<a name="L1217"></a><tt class="py-lineno">1217</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'pi'</tt><tt class="py-op">,</tt> <tt id="link-1351" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1351', 'root', 'link-247');">root</a></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-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-1352" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1352', 'root', 'link-247');">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 class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1353" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1353', 'root', 'link-247');">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 class="py-op">,</tt> </tt>
-<a name="L1218"></a><tt class="py-lineno">1218</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1354" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1354', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1219"></a><tt class="py-lineno">1219</tt>  <tt class="py-line">             <tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1220"></a><tt class="py-lineno">1220</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1221"></a><tt class="py-lineno">1221</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterwalk_pis_tree"></a><div id="ETreeOnlyTestCase.test_iterwalk_pis_tree-def"><a name="L1222"></a><tt class="py-lineno">1222</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterwalk_pis_tree-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterwalk_pis_tree');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_pis_tree">test_iterwalk_pis_tree</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterwalk_pis_tree-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterwalk_pis_tree-expanded"><a name="L1223"></a><tt class="py-lineno">1223</tt>  <tt class="py-line">        <tt id="link-1355" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1355', 'iterwalk', 'link-1264');">iterwalk</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1356" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1340', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1223"></a><tt class="py-lineno">1223</tt>  <tt class="py-line">            <tt class="py-string">b'&lt;?C0?&gt;&lt;a&gt;&lt;?Ca?&gt;&lt;b&gt;&lt;?Cb?&gt;&lt;/b&gt;&lt;?Cc?&gt;&lt;c/&gt;&lt;/a&gt;&lt;?C99?&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1224"></a><tt class="py-lineno">1224</tt>  <tt class="py-line"> </tt>
+<a name="L1225"></a><tt class="py-lineno">1225</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1341" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1341', 'iterwalk', 'link-1261');">iterwalk</a></tt><tt class="py-op">(</tt><tt id="link-1342" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1342', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <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-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'pi'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1226"></a><tt class="py-lineno">1226</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
+<a name="L1227"></a><tt class="py-lineno">1227</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1228"></a><tt class="py-lineno">1228</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 id="link-1343" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1343', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'pi'</tt><tt class="py-op">,</tt> <tt id="link-1344" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1344', 'root', 'link-247');">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 class="py-op">,</tt> </tt>
+<a name="L1229"></a><tt class="py-lineno">1229</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-1345" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1345', 'root', 'link-247');">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 class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'pi'</tt><tt class="py-op">,</tt> <tt id="link-1346" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1346', 'root', 'link-247');">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 class="py-number">0</tt><tt class="py-op">]</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 id="link-1347" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1347', 'root', 'link-247');">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 class="py-op">,</tt> </tt>
+<a name="L1230"></a><tt class="py-lineno">1230</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'pi'</tt><tt class="py-op">,</tt> <tt id="link-1348" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1348', 'root', 'link-247');">root</a></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-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-1349" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1349', 'root', 'link-247');">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 class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1350" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1350', 'root', 'link-247');">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 class="py-op">,</tt> </tt>
+<a name="L1231"></a><tt class="py-lineno">1231</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1351" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1351', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1232"></a><tt class="py-lineno">1232</tt>  <tt class="py-line">             <tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1233"></a><tt class="py-lineno">1233</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1234"></a><tt class="py-lineno">1234</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterwalk_pis_tree"></a><div id="ETreeOnlyTestCase.test_iterwalk_pis_tree-def"><a name="L1235"></a><tt class="py-lineno">1235</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterwalk_pis_tree-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterwalk_pis_tree');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_pis_tree">test_iterwalk_pis_tree</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterwalk_pis_tree-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterwalk_pis_tree-expanded"><a name="L1236"></a><tt class="py-lineno">1236</tt>  <tt class="py-line">        <tt id="link-1352" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1352', 'iterwalk', 'link-1261');">iterwalk</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1353" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -4189,8 +4185,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1356', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1357" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1357', 'iterwalk', 'link-1264');">iterwalk</a></tt> </tt>
-<a name="L1224"></a><tt class="py-lineno">1224</tt>  <tt class="py-line">        <tt id="link-1358" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1358', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1359" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1353', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1354" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1354', 'iterwalk', 'link-1261');">iterwalk</a></tt> </tt>
+<a name="L1237"></a><tt class="py-lineno">1237</tt>  <tt class="py-line">        <tt id="link-1355" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1355', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1356" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -4198,13 +4194,13 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1359', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1360" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1356', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1357" 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-1360', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1225"></a><tt class="py-lineno">1225</tt>  <tt class="py-line">            <tt class="py-string">b'&lt;?C0?&gt;&lt;a&gt;&lt;?Ca?&gt;&lt;b&gt;&lt;?Cb?&gt;&lt;/b&gt;&lt;?Cc?&gt;&lt;c/&gt;&lt;/a&gt;&lt;?C99?&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1226"></a><tt class="py-lineno">1226</tt>  <tt class="py-line"> </tt>
-<a name="L1227"></a><tt class="py-lineno">1227</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1361" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1361', 'iterwalk', 'link-1264');">iterwalk</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1362" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1357', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1238"></a><tt class="py-lineno">1238</tt>  <tt class="py-line">            <tt class="py-string">b'&lt;?C0?&gt;&lt;a&gt;&lt;?Ca?&gt;&lt;b&gt;&lt;?Cb?&gt;&lt;/b&gt;&lt;?Cc?&gt;&lt;c/&gt;&lt;/a&gt;&lt;?C99?&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1239"></a><tt class="py-lineno">1239</tt>  <tt class="py-line"> </tt>
+<a name="L1240"></a><tt class="py-lineno">1240</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1358" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1358', 'iterwalk', 'link-1261');">iterwalk</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1359" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -4212,21 +4208,21 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1362', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1363" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1359', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1360" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1363', 'ElementTree', 'link-573');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-1364" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1364', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <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-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'pi'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1228"></a><tt class="py-lineno">1228</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
-<a name="L1229"></a><tt class="py-lineno">1229</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1230"></a><tt class="py-lineno">1230</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'pi'</tt><tt class="py-op">,</tt> <tt id="link-1365" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1365', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1366" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-1366', 'getprevious', 'link-1326');">getprevious</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="L1231"></a><tt class="py-lineno">1231</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-1367" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1367', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'pi'</tt><tt class="py-op">,</tt> <tt id="link-1368" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1368', 'root', 'link-247');">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 class="py-op">,</tt>  <tt class="py-comment"># &lt;a&gt;</tt> </tt>
-<a name="L1232"></a><tt class="py-lineno">1232</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-1369" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1369', 'root', 'link-247');">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 class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'pi'</tt><tt class="py-op">,</tt> <tt id="link-1370" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1370', 'root', 'link-247');">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 class="py-number">0</tt><tt class="py-op">]</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 id="link-1371" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1371', 'root', 'link-247');">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 class="py-op">,</tt>  <tt class="py-comment"># &lt;b&gt;</tt> </tt>
-<a name="L1233"></a><tt class="py-lineno">1233</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'pi'</tt><tt class="py-op">,</tt> <tt id="link-1372" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1372', 'root', 'link-247');">root</a></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-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-1373" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1373', 'root', 'link-247');">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 class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1374" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1374', 'root', 'link-247');">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 class="py-op">,</tt>  <tt class="py-comment"># &lt;c&gt;</tt> </tt>
-<a name="L1234"></a><tt class="py-lineno">1234</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1375" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1375', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'pi'</tt><tt class="py-op">,</tt> <tt id="link-1376" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1376', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1377" class="py-name"><a title="lxml.etree._Element.getnext" class="py-name" href="#" onclick="return doclink('link-1377', 'getnext', 'link-1337');">getnext</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="L1235"></a><tt class="py-lineno">1235</tt>  <tt class="py-line">             <tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1236"></a><tt class="py-lineno">1236</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1237"></a><tt class="py-lineno">1237</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterwalk_pis_comments_tree"></a><div id="ETreeOnlyTestCase.test_iterwalk_pis_comments_tree-def"><a name="L1238"></a><tt class="py-lineno">1238</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterwalk_pis_comments_tree-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterwalk_pis_comments_tree');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_pis_comments_tree">test_iterwalk_pis_comments_tree</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterwalk_pis_comments_tree-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterwalk_pis_comments_tree-expanded"><a name="L1239"></a><tt class="py-lineno">1239</tt>  <tt class="py-line">        <tt id="link-1378" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1378', 'iterwalk', 'link-1264');">iterwalk</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1379" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1360', 'ElementTree', 'link-570');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-1361" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1361', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <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-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'pi'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1241"></a><tt class="py-lineno">1241</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
+<a name="L1242"></a><tt class="py-lineno">1242</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1243"></a><tt class="py-lineno">1243</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'pi'</tt><tt class="py-op">,</tt> <tt id="link-1362" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1362', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1363" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-1363', 'getprevious', 'link-1323');">getprevious</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="L1244"></a><tt class="py-lineno">1244</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-1364" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1364', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'pi'</tt><tt class="py-op">,</tt> <tt id="link-1365" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1365', 'root', 'link-247');">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 class="py-op">,</tt>  <tt class="py-comment"># &lt;a&gt;</tt> </tt>
+<a name="L1245"></a><tt class="py-lineno">1245</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-1366" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1366', 'root', 'link-247');">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 class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'pi'</tt><tt class="py-op">,</tt> <tt id="link-1367" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1367', 'root', 'link-247');">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 class="py-number">0</tt><tt class="py-op">]</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 id="link-1368" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1368', 'root', 'link-247');">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 class="py-op">,</tt>  <tt class="py-comment"># &lt;b&gt;</tt> </tt>
+<a name="L1246"></a><tt class="py-lineno">1246</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'pi'</tt><tt class="py-op">,</tt> <tt id="link-1369" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1369', 'root', 'link-247');">root</a></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-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-1370" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1370', 'root', 'link-247');">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 class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1371" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1371', 'root', 'link-247');">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 class="py-op">,</tt>  <tt class="py-comment"># &lt;c&gt;</tt> </tt>
+<a name="L1247"></a><tt class="py-lineno">1247</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1372" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1372', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'pi'</tt><tt class="py-op">,</tt> <tt id="link-1373" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1373', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1374" class="py-name"><a title="lxml.etree._Element.getnext" class="py-name" href="#" onclick="return doclink('link-1374', 'getnext', 'link-1334');">getnext</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="L1248"></a><tt class="py-lineno">1248</tt>  <tt class="py-line">             <tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1249"></a><tt class="py-lineno">1249</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1250"></a><tt class="py-lineno">1250</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterwalk_pis_comments_tree"></a><div id="ETreeOnlyTestCase.test_iterwalk_pis_comments_tree-def"><a name="L1251"></a><tt class="py-lineno">1251</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterwalk_pis_comments_tree-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterwalk_pis_comments_tree');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_pis_comments_tree">test_iterwalk_pis_comments_tree</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterwalk_pis_comments_tree-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterwalk_pis_comments_tree-expanded"><a name="L1252"></a><tt class="py-lineno">1252</tt>  <tt class="py-line">        <tt id="link-1375" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1375', 'iterwalk', 'link-1261');">iterwalk</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1376" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -4234,8 +4230,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1379', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1380" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1380', 'iterwalk', 'link-1264');">iterwalk</a></tt> </tt>
-<a name="L1240"></a><tt class="py-lineno">1240</tt>  <tt class="py-line">        <tt id="link-1381" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1381', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1382" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1376', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1377" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1377', 'iterwalk', 'link-1261');">iterwalk</a></tt> </tt>
+<a name="L1253"></a><tt class="py-lineno">1253</tt>  <tt class="py-line">        <tt id="link-1378" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1378', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1379" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -4243,13 +4239,13 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1382', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1383" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1379', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1380" 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-1383', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1241"></a><tt class="py-lineno">1241</tt>  <tt class="py-line">            <tt class="py-string">b'&lt;!--C0--&gt;&lt;?C0?&gt;&lt;!--C1--&gt;&lt;a&gt;&lt;?Ca?&gt;&lt;b&gt;&lt;!--Cb--&gt;&lt;/b&gt;&lt;?Cc?&gt;&lt;c/&gt;&lt;/a&gt;&lt;!--C99--&gt;&lt;?C99?&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1242"></a><tt class="py-lineno">1242</tt>  <tt class="py-line"> </tt>
-<a name="L1243"></a><tt class="py-lineno">1243</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1384" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1384', 'iterwalk', 'link-1264');">iterwalk</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1385" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1380', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1254"></a><tt class="py-lineno">1254</tt>  <tt class="py-line">            <tt class="py-string">b'&lt;!--C0--&gt;&lt;?C0?&gt;&lt;!--C1--&gt;&lt;a&gt;&lt;?Ca?&gt;&lt;b&gt;&lt;!--Cb--&gt;&lt;/b&gt;&lt;?Cc?&gt;&lt;c/&gt;&lt;/a&gt;&lt;!--C99--&gt;&lt;?C99?&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1255"></a><tt class="py-lineno">1255</tt>  <tt class="py-line"> </tt>
+<a name="L1256"></a><tt class="py-lineno">1256</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1381" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1381', 'iterwalk', 'link-1261');">iterwalk</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1382" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -4257,23 +4253,23 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1385', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1386" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1382', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1383" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1386', 'ElementTree', 'link-573');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-1387" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1387', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <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-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'pi'</tt><tt class="py-op">,</tt> <tt class="py-string">'comment'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1244"></a><tt class="py-lineno">1244</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
-<a name="L1245"></a><tt class="py-lineno">1245</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1246"></a><tt class="py-lineno">1246</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'comment'</tt><tt class="py-op">,</tt> <tt id="link-1388" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1388', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1389" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-1389', 'getprevious', 'link-1326');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-1390" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-1390', 'getprevious', 'link-1326');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-1391" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-1391', 'getprevious', 'link-1326');">getprevious</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="L1247"></a><tt class="py-lineno">1247</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'pi'</tt><tt class="py-op">,</tt> <tt id="link-1392" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1392', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1393" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-1393', 'getprevious', 'link-1326');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-1394" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-1394', 'getprevious', 'link-1326');">getprevious</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="L1248"></a><tt class="py-lineno">1248</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'comment'</tt><tt class="py-op">,</tt> <tt id="link-1395" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1395', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1396" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-1396', 'getprevious', 'link-1326');">getprevious</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="L1249"></a><tt class="py-lineno">1249</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-1397" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1397', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'pi'</tt><tt class="py-op">,</tt> <tt id="link-1398" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1398', 'root', 'link-247');">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 class="py-op">,</tt>  <tt class="py-comment"># &lt;a&gt;</tt> </tt>
-<a name="L1250"></a><tt class="py-lineno">1250</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-1399" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1399', 'root', 'link-247');">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 class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'comment'</tt><tt class="py-op">,</tt> <tt id="link-1400" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1400', 'root', 'link-247');">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 class="py-number">0</tt><tt class="py-op">]</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 id="link-1401" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1401', 'root', 'link-247');">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 class="py-op">,</tt>  <tt class="py-comment"># &lt;b&gt;</tt> </tt>
-<a name="L1251"></a><tt class="py-lineno">1251</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'pi'</tt><tt class="py-op">,</tt> <tt id="link-1402" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1402', 'root', 'link-247');">root</a></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-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-1403" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1403', 'root', 'link-247');">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 class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1404" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1404', 'root', 'link-247');">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 class="py-op">,</tt>  <tt class="py-comment"># &lt;c&gt;</tt> </tt>
-<a name="L1252"></a><tt class="py-lineno">1252</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1405" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1405', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'comment'</tt><tt class="py-op">,</tt> <tt id="link-1406" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1406', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1407" class="py-name"><a title="lxml.etree._Element.getnext" class="py-name" href="#" onclick="return doclink('link-1407', 'getnext', 'link-1337');">getnext</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-string">'pi'</tt><tt class="py-op">,</tt> <tt id="link-1408" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1408', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1409" class="py-name"><a title="lxml.etree._Element.getnext" class="py-name" href="#" onclick="return doclink('link-1409', 'getnext', 'link-1337');">getnext</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-1410" class="py-name"><a title="lxml.etree._Element.getnext" class="py-name" href="#" onclick="return doclink('link-1410', 'getnext', 'link-1337');">getnext</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="L1253"></a><tt class="py-lineno">1253</tt>  <tt class="py-line">             <tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1254"></a><tt class="py-lineno">1254</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1255"></a><tt class="py-lineno">1255</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterwalk_pis_comments_tree_no_events"></a><div id="ETreeOnlyTestCase.test_iterwalk_pis_comments_tree_no_events-def"><a name="L1256"></a><tt class="py-lineno">1256</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterwalk_pis_comments_tree_no_events-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterwalk_pis_comments_tree_no_events');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_pis_comments_tree_no_events">test_iterwalk_pis_comments_tree_no_events</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterwalk_pis_comments_tree_no_events-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterwalk_pis_comments_tree_no_events-expanded"><a name="L1257"></a><tt class="py-lineno">1257</tt>  <tt class="py-line">        <tt id="link-1411" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1411', 'iterwalk', 'link-1264');">iterwalk</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1412" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1383', 'ElementTree', 'link-570');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-1384" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1384', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <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-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'pi'</tt><tt class="py-op">,</tt> <tt class="py-string">'comment'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1257"></a><tt class="py-lineno">1257</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
+<a name="L1258"></a><tt class="py-lineno">1258</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1259"></a><tt class="py-lineno">1259</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'comment'</tt><tt class="py-op">,</tt> <tt id="link-1385" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1385', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1386" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-1386', 'getprevious', 'link-1323');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-1387" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-1387', 'getprevious', 'link-1323');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-1388" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-1388', 'getprevious', 'link-1323');">getprevious</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="L1260"></a><tt class="py-lineno">1260</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'pi'</tt><tt class="py-op">,</tt> <tt id="link-1389" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1389', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1390" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-1390', 'getprevious', 'link-1323');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-1391" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-1391', 'getprevious', 'link-1323');">getprevious</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="L1261"></a><tt class="py-lineno">1261</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'comment'</tt><tt class="py-op">,</tt> <tt id="link-1392" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1392', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1393" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-1393', 'getprevious', 'link-1323');">getprevious</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="L1262"></a><tt class="py-lineno">1262</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-1394" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1394', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'pi'</tt><tt class="py-op">,</tt> <tt id="link-1395" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1395', 'root', 'link-247');">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 class="py-op">,</tt>  <tt class="py-comment"># &lt;a&gt;</tt> </tt>
+<a name="L1263"></a><tt class="py-lineno">1263</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-1396" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1396', 'root', 'link-247');">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 class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'comment'</tt><tt class="py-op">,</tt> <tt id="link-1397" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1397', 'root', 'link-247');">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 class="py-number">0</tt><tt class="py-op">]</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 id="link-1398" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1398', 'root', 'link-247');">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 class="py-op">,</tt>  <tt class="py-comment"># &lt;b&gt;</tt> </tt>
+<a name="L1264"></a><tt class="py-lineno">1264</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'pi'</tt><tt class="py-op">,</tt> <tt id="link-1399" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1399', 'root', 'link-247');">root</a></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-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-1400" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1400', 'root', 'link-247');">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 class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1401" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1401', 'root', 'link-247');">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 class="py-op">,</tt>  <tt class="py-comment"># &lt;c&gt;</tt> </tt>
+<a name="L1265"></a><tt class="py-lineno">1265</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1402" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1402', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'comment'</tt><tt class="py-op">,</tt> <tt id="link-1403" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1403', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1404" class="py-name"><a title="lxml.etree._Element.getnext" class="py-name" href="#" onclick="return doclink('link-1404', 'getnext', 'link-1334');">getnext</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-string">'pi'</tt><tt class="py-op">,</tt> <tt id="link-1405" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1405', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1406" class="py-name"><a title="lxml.etree._Element.getnext" class="py-name" href="#" onclick="return doclink('link-1406', 'getnext', 'link-1334');">getnext</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-1407" class="py-name"><a title="lxml.etree._Element.getnext" class="py-name" href="#" onclick="return doclink('link-1407', 'getnext', 'link-1334');">getnext</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="L1266"></a><tt class="py-lineno">1266</tt>  <tt class="py-line">             <tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1267"></a><tt class="py-lineno">1267</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1268"></a><tt class="py-lineno">1268</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterwalk_pis_comments_tree_no_events"></a><div id="ETreeOnlyTestCase.test_iterwalk_pis_comments_tree_no_events-def"><a name="L1269"></a><tt class="py-lineno">1269</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterwalk_pis_comments_tree_no_events-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterwalk_pis_comments_tree_no_events');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_pis_comments_tree_no_events">test_iterwalk_pis_comments_tree_no_events</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterwalk_pis_comments_tree_no_events-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterwalk_pis_comments_tree_no_events-expanded"><a name="L1270"></a><tt class="py-lineno">1270</tt>  <tt class="py-line">        <tt id="link-1408" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1408', 'iterwalk', 'link-1261');">iterwalk</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1409" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -4281,8 +4277,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1412', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1413" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1413', 'iterwalk', 'link-1264');">iterwalk</a></tt> </tt>
-<a name="L1258"></a><tt class="py-lineno">1258</tt>  <tt class="py-line">        <tt id="link-1414" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1414', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1415" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1409', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1410" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1410', 'iterwalk', 'link-1261');">iterwalk</a></tt> </tt>
+<a name="L1271"></a><tt class="py-lineno">1271</tt>  <tt class="py-line">        <tt id="link-1411" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1411', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1412" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -4290,13 +4286,13 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1415', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1416" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1412', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1413" 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-1416', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1259"></a><tt class="py-lineno">1259</tt>  <tt class="py-line">            <tt class="py-string">b'&lt;!--C0--&gt;&lt;?C0?&gt;&lt;!--C1--&gt;&lt;a&gt;&lt;?Ca?&gt;&lt;b&gt;&lt;!--Cb--&gt;&lt;/b&gt;&lt;?Cc?&gt;&lt;c/&gt;&lt;/a&gt;&lt;!--C99--&gt;&lt;?C99?&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1260"></a><tt class="py-lineno">1260</tt>  <tt class="py-line"> </tt>
-<a name="L1261"></a><tt class="py-lineno">1261</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1417" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1417', 'iterwalk', 'link-1264');">iterwalk</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1418" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1413', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1272"></a><tt class="py-lineno">1272</tt>  <tt class="py-line">            <tt class="py-string">b'&lt;!--C0--&gt;&lt;?C0?&gt;&lt;!--C1--&gt;&lt;a&gt;&lt;?Ca?&gt;&lt;b&gt;&lt;!--Cb--&gt;&lt;/b&gt;&lt;?Cc?&gt;&lt;c/&gt;&lt;/a&gt;&lt;!--C99--&gt;&lt;?C99?&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1273"></a><tt class="py-lineno">1273</tt>  <tt class="py-line"> </tt>
+<a name="L1274"></a><tt class="py-lineno">1274</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1414" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1414', 'iterwalk', 'link-1261');">iterwalk</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1415" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -4304,20 +4300,20 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1418', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1419" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1415', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1416" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1419', 'ElementTree', 'link-573');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-1420" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1420', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <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-string">'end'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1262"></a><tt class="py-lineno">1262</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
-<a name="L1263"></a><tt class="py-lineno">1263</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1264"></a><tt class="py-lineno">1264</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 id="link-1421" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1421', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt>  <tt class="py-comment"># &lt;a&gt;</tt> </tt>
-<a name="L1265"></a><tt class="py-lineno">1265</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-1422" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1422', 'root', 'link-247');">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 class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1423" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1423', 'root', 'link-247');">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 class="py-op">,</tt>  <tt class="py-comment"># &lt;b&gt;</tt> </tt>
-<a name="L1266"></a><tt class="py-lineno">1266</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-1424" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1424', 'root', 'link-247');">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 class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1425" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1425', 'root', 'link-247');">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 class="py-op">,</tt>  <tt class="py-comment"># &lt;c&gt;</tt> </tt>
-<a name="L1267"></a><tt class="py-lineno">1267</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1426" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1426', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1268"></a><tt class="py-lineno">1268</tt>  <tt class="py-line">             <tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1269"></a><tt class="py-lineno">1269</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1270"></a><tt class="py-lineno">1270</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterwalk_start"></a><div id="ETreeOnlyTestCase.test_iterwalk_start-def"><a name="L1271"></a><tt class="py-lineno">1271</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterwalk_start-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterwalk_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_iterwalk_start">test_iterwalk_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_iterwalk_start-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterwalk_start-expanded"><a name="L1272"></a><tt class="py-lineno">1272</tt>  <tt class="py-line">        <tt id="link-1427" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1427', 'iterwalk', 'link-1264');">iterwalk</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1428" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1416', 'ElementTree', 'link-570');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-1417" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1417', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <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-string">'end'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1275"></a><tt class="py-lineno">1275</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
+<a name="L1276"></a><tt class="py-lineno">1276</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1277"></a><tt class="py-lineno">1277</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 id="link-1418" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1418', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt>  <tt class="py-comment"># &lt;a&gt;</tt> </tt>
+<a name="L1278"></a><tt class="py-lineno">1278</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-1419" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1419', 'root', 'link-247');">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 class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1420" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1420', 'root', 'link-247');">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 class="py-op">,</tt>  <tt class="py-comment"># &lt;b&gt;</tt> </tt>
+<a name="L1279"></a><tt class="py-lineno">1279</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-1421" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1421', 'root', 'link-247');">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 class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1422" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1422', 'root', 'link-247');">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 class="py-op">,</tt>  <tt class="py-comment"># &lt;c&gt;</tt> </tt>
+<a name="L1280"></a><tt class="py-lineno">1280</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1423" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1423', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1281"></a><tt class="py-lineno">1281</tt>  <tt class="py-line">             <tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1282"></a><tt class="py-lineno">1282</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1283"></a><tt class="py-lineno">1283</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterwalk_start"></a><div id="ETreeOnlyTestCase.test_iterwalk_start-def"><a name="L1284"></a><tt class="py-lineno">1284</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterwalk_start-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterwalk_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_iterwalk_start">test_iterwalk_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_iterwalk_start-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterwalk_start-expanded"><a name="L1285"></a><tt class="py-lineno">1285</tt>  <tt class="py-line">        <tt id="link-1424" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1424', 'iterwalk', 'link-1261');">iterwalk</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1425" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -4325,8 +4321,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1428', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1429" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1429', 'iterwalk', 'link-1264');">iterwalk</a></tt> </tt>
-<a name="L1273"></a><tt class="py-lineno">1273</tt>  <tt class="py-line">        <tt id="link-1430" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1430', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1431" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1425', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1426" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1426', 'iterwalk', 'link-1261');">iterwalk</a></tt> </tt>
+<a name="L1286"></a><tt class="py-lineno">1286</tt>  <tt class="py-line">        <tt id="link-1427" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1427', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1428" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -4334,19 +4330,19 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1431', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1432" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1428', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1429" 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-1432', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1433" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1433', '_bytes', 'link-18');">_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;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1274"></a><tt class="py-lineno">1274</tt>  <tt class="py-line"> </tt>
-<a name="L1275"></a><tt class="py-lineno">1275</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1434" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1434', 'iterwalk', 'link-1264');">iterwalk</a></tt><tt class="py-op">(</tt><tt id="link-1435" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1435', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <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>
-<a name="L1276"></a><tt class="py-lineno">1276</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
-<a name="L1277"></a><tt class="py-lineno">1277</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1278"></a><tt class="py-lineno">1278</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 id="link-1436" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1436', 'root', 'link-247');">root</a></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 id="link-1437" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1437', 'root', 'link-247');">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 class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-1438" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1438', 'root', 'link-247');">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 class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1279"></a><tt class="py-lineno">1279</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1280"></a><tt class="py-lineno">1280</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterwalk_start_end"></a><div id="ETreeOnlyTestCase.test_iterwalk_start_end-def"><a name="L1281"></a><tt class="py-lineno">1281</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterwalk_start_end-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterwalk_start_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_iterwalk_start_end">test_iterwalk_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="ETreeOnlyTestCase.test_iterwalk_start_end-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterwalk_start_end-expanded"><a name="L1282"></a><tt class="py-lineno">1282</tt>  <tt class="py-line">        <tt id="link-1439" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1439', 'iterwalk', 'link-1264');">iterwalk</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1440" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1429', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1430" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1430', '_bytes', 'link-18');">_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;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1287"></a><tt class="py-lineno">1287</tt>  <tt class="py-line"> </tt>
+<a name="L1288"></a><tt class="py-lineno">1288</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1431" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1431', 'iterwalk', 'link-1261');">iterwalk</a></tt><tt class="py-op">(</tt><tt id="link-1432" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1432', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <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>
+<a name="L1289"></a><tt class="py-lineno">1289</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
+<a name="L1290"></a><tt class="py-lineno">1290</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1291"></a><tt class="py-lineno">1291</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 id="link-1433" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1433', 'root', 'link-247');">root</a></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 id="link-1434" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1434', 'root', 'link-247');">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 class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-1435" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1435', 'root', 'link-247');">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 class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1292"></a><tt class="py-lineno">1292</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1293"></a><tt class="py-lineno">1293</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterwalk_start_end"></a><div id="ETreeOnlyTestCase.test_iterwalk_start_end-def"><a name="L1294"></a><tt class="py-lineno">1294</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterwalk_start_end-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterwalk_start_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_iterwalk_start_end">test_iterwalk_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="ETreeOnlyTestCase.test_iterwalk_start_end-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterwalk_start_end-expanded"><a name="L1295"></a><tt class="py-lineno">1295</tt>  <tt class="py-line">        <tt id="link-1436" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1436', 'iterwalk', 'link-1261');">iterwalk</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1437" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -4354,8 +4350,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1440', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1441" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1441', 'iterwalk', 'link-1264');">iterwalk</a></tt> </tt>
-<a name="L1283"></a><tt class="py-lineno">1283</tt>  <tt class="py-line">        <tt id="link-1442" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1442', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1443" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1437', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1438" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1438', 'iterwalk', 'link-1261');">iterwalk</a></tt> </tt>
+<a name="L1296"></a><tt class="py-lineno">1296</tt>  <tt class="py-line">        <tt id="link-1439" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1439', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1440" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -4363,20 +4359,20 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1443', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1444" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1440', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1441" 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-1444', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1445" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1445', '_bytes', 'link-18');">_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;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1284"></a><tt class="py-lineno">1284</tt>  <tt class="py-line"> </tt>
-<a name="L1285"></a><tt class="py-lineno">1285</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1446" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1446', 'iterwalk', 'link-1264');">iterwalk</a></tt><tt class="py-op">(</tt><tt id="link-1447" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1447', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <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-string">'end'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1286"></a><tt class="py-lineno">1286</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
-<a name="L1287"></a><tt class="py-lineno">1287</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1288"></a><tt class="py-lineno">1288</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 id="link-1448" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1448', 'root', 'link-247');">root</a></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 id="link-1449" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1449', 'root', 'link-247');">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 class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1450" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1450', 'root', 'link-247');">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 class="py-op">,</tt> </tt>
-<a name="L1289"></a><tt class="py-lineno">1289</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-1451" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1451', 'root', 'link-247');">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 class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1452" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1452', 'root', 'link-247');">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 class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1453" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1453', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1290"></a><tt class="py-lineno">1290</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1291"></a><tt class="py-lineno">1291</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterwalk_start_tags"></a><div id="ETreeOnlyTestCase.test_iterwalk_start_tags-def"><a name="L1292"></a><tt class="py-lineno">1292</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterwalk_start_tags-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterwalk_start_tags');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_start_tags">test_iterwalk_start_tags</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterwalk_start_tags-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterwalk_start_tags-expanded"><a name="L1293"></a><tt class="py-lineno">1293</tt>  <tt class="py-line">        <tt id="link-1454" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1454', 'iterwalk', 'link-1264');">iterwalk</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1455" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1441', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1442" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1442', '_bytes', 'link-18');">_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;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1297"></a><tt class="py-lineno">1297</tt>  <tt class="py-line"> </tt>
+<a name="L1298"></a><tt class="py-lineno">1298</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1443" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1443', 'iterwalk', 'link-1261');">iterwalk</a></tt><tt class="py-op">(</tt><tt id="link-1444" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1444', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <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-string">'end'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1299"></a><tt class="py-lineno">1299</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
+<a name="L1300"></a><tt class="py-lineno">1300</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1301"></a><tt class="py-lineno">1301</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 id="link-1445" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1445', 'root', 'link-247');">root</a></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 id="link-1446" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1446', 'root', 'link-247');">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 class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1447" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1447', 'root', 'link-247');">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 class="py-op">,</tt> </tt>
+<a name="L1302"></a><tt class="py-lineno">1302</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-1448" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1448', 'root', 'link-247');">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 class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1449" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1449', 'root', 'link-247');">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 class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1450" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1450', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1303"></a><tt class="py-lineno">1303</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1304"></a><tt class="py-lineno">1304</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterwalk_start_tags"></a><div id="ETreeOnlyTestCase.test_iterwalk_start_tags-def"><a name="L1305"></a><tt class="py-lineno">1305</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterwalk_start_tags-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterwalk_start_tags');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_start_tags">test_iterwalk_start_tags</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterwalk_start_tags-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterwalk_start_tags-expanded"><a name="L1306"></a><tt class="py-lineno">1306</tt>  <tt class="py-line">        <tt id="link-1451" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1451', 'iterwalk', 'link-1261');">iterwalk</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1452" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -4384,8 +4380,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1455', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1456" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1456', 'iterwalk', 'link-1264');">iterwalk</a></tt> </tt>
-<a name="L1294"></a><tt class="py-lineno">1294</tt>  <tt class="py-line">        <tt id="link-1457" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1457', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1458" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1452', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1453" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1453', 'iterwalk', 'link-1261');">iterwalk</a></tt> </tt>
+<a name="L1307"></a><tt class="py-lineno">1307</tt>  <tt class="py-line">        <tt id="link-1454" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1454', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1455" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -4393,24 +4389,24 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1458', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1459" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1455', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1456" 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-1459', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1460" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1460', '_bytes', 'link-18');">_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;b&gt;&lt;d/&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1295"></a><tt class="py-lineno">1295</tt>  <tt class="py-line"> </tt>
-<a name="L1296"></a><tt class="py-lineno">1296</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1461" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1461', 'iterwalk', 'link-1264');">iterwalk</a></tt><tt class="py-op">(</tt><tt id="link-1462" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1462', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <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 id="link-1463" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1456', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1457" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1457', '_bytes', 'link-18');">_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;b&gt;&lt;d/&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1308"></a><tt class="py-lineno">1308</tt>  <tt class="py-line"> </tt>
+<a name="L1309"></a><tt class="py-lineno">1309</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1458" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1458', 'iterwalk', 'link-1261');">iterwalk</a></tt><tt class="py-op">(</tt><tt id="link-1459" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1459', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <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 id="link-1460" 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-1463', 'tag', 'link-73');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1297"></a><tt class="py-lineno">1297</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
-<a name="L1298"></a><tt class="py-lineno">1298</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1299"></a><tt class="py-lineno">1299</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 id="link-1464" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1464', 'root', 'link-247');">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 class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-1465" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1465', 'root', 'link-247');">root</a></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-op">,</tt> </tt>
-<a name="L1300"></a><tt class="py-lineno">1300</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1301"></a><tt class="py-lineno">1301</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterwalk_start_end_tags"></a><div id="ETreeOnlyTestCase.test_iterwalk_start_end_tags-def"><a name="L1302"></a><tt class="py-lineno">1302</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterwalk_start_end_tags-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterwalk_start_end_tags');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_start_end_tags">test_iterwalk_start_end_tags</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterwalk_start_end_tags-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterwalk_start_end_tags-expanded"><a name="L1303"></a><tt class="py-lineno">1303</tt>  <tt class="py-line">        <tt id="link-1466" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1466', 'iterwalk', 'link-1264');">iterwalk</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1467" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1460', 'tag', 'link-73');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1310"></a><tt class="py-lineno">1310</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
+<a name="L1311"></a><tt class="py-lineno">1311</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1312"></a><tt class="py-lineno">1312</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 id="link-1461" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1461', 'root', 'link-247');">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 class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-1462" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1462', 'root', 'link-247');">root</a></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-op">,</tt> </tt>
+<a name="L1313"></a><tt class="py-lineno">1313</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1314"></a><tt class="py-lineno">1314</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterwalk_start_end_tags"></a><div id="ETreeOnlyTestCase.test_iterwalk_start_end_tags-def"><a name="L1315"></a><tt class="py-lineno">1315</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterwalk_start_end_tags-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterwalk_start_end_tags');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_start_end_tags">test_iterwalk_start_end_tags</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterwalk_start_end_tags-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterwalk_start_end_tags-expanded"><a name="L1316"></a><tt class="py-lineno">1316</tt>  <tt class="py-line">        <tt id="link-1463" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1463', 'iterwalk', 'link-1261');">iterwalk</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1464" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -4418,8 +4414,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1467', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1468" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1468', 'iterwalk', 'link-1264');">iterwalk</a></tt> </tt>
-<a name="L1304"></a><tt class="py-lineno">1304</tt>  <tt class="py-line">        <tt id="link-1469" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1469', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1470" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1464', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1465" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1465', 'iterwalk', 'link-1261');">iterwalk</a></tt> </tt>
+<a name="L1317"></a><tt class="py-lineno">1317</tt>  <tt class="py-line">        <tt id="link-1466" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1466', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1467" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -4427,24 +4423,24 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1470', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1471" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1467', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1468" 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-1471', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1472" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1472', '_bytes', 'link-18');">_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;b&gt;&lt;d/&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1305"></a><tt class="py-lineno">1305</tt>  <tt class="py-line"> </tt>
-<a name="L1306"></a><tt class="py-lineno">1306</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1473" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1473', 'iterwalk', 'link-1264');">iterwalk</a></tt><tt class="py-op">(</tt><tt id="link-1474" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1474', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <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-string">'end'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-1475" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1468', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1469" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1469', '_bytes', 'link-18');">_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;b&gt;&lt;d/&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1318"></a><tt class="py-lineno">1318</tt>  <tt class="py-line"> </tt>
+<a name="L1319"></a><tt class="py-lineno">1319</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1470" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1470', 'iterwalk', 'link-1261');">iterwalk</a></tt><tt class="py-op">(</tt><tt id="link-1471" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1471', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <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-string">'end'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-1472" 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-1475', 'tag', 'link-73');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1307"></a><tt class="py-lineno">1307</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
-<a name="L1308"></a><tt class="py-lineno">1308</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1309"></a><tt class="py-lineno">1309</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 id="link-1476" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1476', 'root', 'link-247');">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 class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1477" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1477', 'root', 'link-247');">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 class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-1478" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1478', 'root', 'link-247');">root</a></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-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1479" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1479', 'root', 'link-247');">root</a></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-op">,</tt> </tt>
-<a name="L1310"></a><tt class="py-lineno">1310</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1311"></a><tt class="py-lineno">1311</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterwalk_start_end_tags_with_root"></a><div id="ETreeOnlyTestCase.test_iterwalk_start_end_tags_with_root-def"><a name="L1312"></a><tt class="py-lineno">1312</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterwalk_start_end_tags_with_root-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterwalk_start_end_tags_with_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_iterwalk_start_end_tags_with_root">test_iterwalk_start_end_tags_with_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_iterwalk_start_end_tags_with_root-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterwalk_start_end_tags_with_root-expanded"><a name="L1313"></a><tt class="py-lineno">1313</tt>  <tt class="py-line">        <tt id="link-1480" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1480', 'iterwalk', 'link-1264');">iterwalk</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1481" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1472', 'tag', 'link-73');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1320"></a><tt class="py-lineno">1320</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
+<a name="L1321"></a><tt class="py-lineno">1321</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1322"></a><tt class="py-lineno">1322</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 id="link-1473" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1473', 'root', 'link-247');">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 class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1474" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1474', 'root', 'link-247');">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 class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-1475" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1475', 'root', 'link-247');">root</a></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-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1476" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1476', 'root', 'link-247');">root</a></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-op">,</tt> </tt>
+<a name="L1323"></a><tt class="py-lineno">1323</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1324"></a><tt class="py-lineno">1324</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterwalk_start_end_tags_with_root"></a><div id="ETreeOnlyTestCase.test_iterwalk_start_end_tags_with_root-def"><a name="L1325"></a><tt class="py-lineno">1325</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterwalk_start_end_tags_with_root-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterwalk_start_end_tags_with_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_iterwalk_start_end_tags_with_root">test_iterwalk_start_end_tags_with_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_iterwalk_start_end_tags_with_root-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterwalk_start_end_tags_with_root-expanded"><a name="L1326"></a><tt class="py-lineno">1326</tt>  <tt class="py-line">        <tt id="link-1477" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1477', 'iterwalk', 'link-1261');">iterwalk</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1478" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -4452,8 +4448,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1481', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1482" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1482', 'iterwalk', 'link-1264');">iterwalk</a></tt> </tt>
-<a name="L1314"></a><tt class="py-lineno">1314</tt>  <tt class="py-line">        <tt id="link-1483" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1483', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1484" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1478', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1479" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1479', 'iterwalk', 'link-1261');">iterwalk</a></tt> </tt>
+<a name="L1327"></a><tt class="py-lineno">1327</tt>  <tt class="py-line">        <tt id="link-1480" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1480', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1481" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -4461,28 +4457,28 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1484', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1485" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1481', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1482" 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-1485', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1486" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1486', '_bytes', 'link-18');">_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;b&gt;&lt;d/&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1315"></a><tt class="py-lineno">1315</tt>  <tt class="py-line"> </tt>
-<a name="L1316"></a><tt class="py-lineno">1316</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1487" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1487', 'iterwalk', 'link-1264');">iterwalk</a></tt><tt class="py-op">(</tt><tt id="link-1488" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1488', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <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-string">'end'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-1489" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1482', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1483" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1483', '_bytes', 'link-18');">_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;b&gt;&lt;d/&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1328"></a><tt class="py-lineno">1328</tt>  <tt class="py-line"> </tt>
+<a name="L1329"></a><tt class="py-lineno">1329</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1484" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1484', 'iterwalk', 'link-1261');">iterwalk</a></tt><tt class="py-op">(</tt><tt id="link-1485" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1485', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <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-string">'end'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-1486" 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-1489', 'tag', 'link-73');">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">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1317"></a><tt class="py-lineno">1317</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
-<a name="L1318"></a><tt class="py-lineno">1318</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1319"></a><tt class="py-lineno">1319</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 id="link-1490" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1490', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1320"></a><tt class="py-lineno">1320</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-1491" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1491', 'root', 'link-247');">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 class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1492" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1492', 'root', 'link-247');">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 class="py-op">,</tt> </tt>
-<a name="L1321"></a><tt class="py-lineno">1321</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-1493" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1493', 'root', 'link-247');">root</a></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-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1494" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1494', 'root', 'link-247');">root</a></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>
-<a name="L1322"></a><tt class="py-lineno">1322</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1495" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1495', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1323"></a><tt class="py-lineno">1323</tt>  <tt class="py-line">             <tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1324"></a><tt class="py-lineno">1324</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1325"></a><tt class="py-lineno">1325</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterwalk_clear"></a><div id="ETreeOnlyTestCase.test_iterwalk_clear-def"><a name="L1326"></a><tt class="py-lineno">1326</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterwalk_clear-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterwalk_clear');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_clear">test_iterwalk_clear</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterwalk_clear-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterwalk_clear-expanded"><a name="L1327"></a><tt class="py-lineno">1327</tt>  <tt class="py-line">        <tt id="link-1496" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1496', 'iterwalk', 'link-1264');">iterwalk</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1497" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1486', 'tag', 'link-73');">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">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1330"></a><tt class="py-lineno">1330</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
+<a name="L1331"></a><tt class="py-lineno">1331</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1332"></a><tt class="py-lineno">1332</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 id="link-1487" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1487', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1333"></a><tt class="py-lineno">1333</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-1488" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1488', 'root', 'link-247');">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 class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1489" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1489', 'root', 'link-247');">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 class="py-op">,</tt> </tt>
+<a name="L1334"></a><tt class="py-lineno">1334</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-1490" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1490', 'root', 'link-247');">root</a></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-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1491" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1491', 'root', 'link-247');">root</a></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>
+<a name="L1335"></a><tt class="py-lineno">1335</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1492" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1492', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1336"></a><tt class="py-lineno">1336</tt>  <tt class="py-line">             <tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1337"></a><tt class="py-lineno">1337</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1338"></a><tt class="py-lineno">1338</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterwalk_clear"></a><div id="ETreeOnlyTestCase.test_iterwalk_clear-def"><a name="L1339"></a><tt class="py-lineno">1339</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterwalk_clear-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterwalk_clear');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_clear">test_iterwalk_clear</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterwalk_clear-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterwalk_clear-expanded"><a name="L1340"></a><tt class="py-lineno">1340</tt>  <tt class="py-line">        <tt id="link-1493" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1493', 'iterwalk', 'link-1261');">iterwalk</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1494" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -4490,8 +4486,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1497', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1498" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1498', 'iterwalk', 'link-1264');">iterwalk</a></tt> </tt>
-<a name="L1328"></a><tt class="py-lineno">1328</tt>  <tt class="py-line">        <tt id="link-1499" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1499', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1500" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1494', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1495" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1495', 'iterwalk', 'link-1261');">iterwalk</a></tt> </tt>
+<a name="L1341"></a><tt class="py-lineno">1341</tt>  <tt class="py-line">        <tt id="link-1496" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1496', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1497" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -4499,23 +4495,23 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1500', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1501" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1497', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1498" 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-1501', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1502" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1502', '_bytes', 'link-18');">_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;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1329"></a><tt class="py-lineno">1329</tt>  <tt class="py-line"> </tt>
-<a name="L1330"></a><tt class="py-lineno">1330</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1503" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1503', 'iterwalk', 'link-1264');">iterwalk</a></tt><tt class="py-op">(</tt><tt id="link-1504" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1504', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1331"></a><tt class="py-lineno">1331</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">elem</tt> <tt class="py-keyword">in</tt> <tt class="py-name">iterator</tt><tt class="py-op">:</tt> </tt>
-<a name="L1332"></a><tt class="py-lineno">1332</tt>  <tt class="py-line">            <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-1505" class="py-name"><a title="lxml.etree.DocInfo.clear
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1498', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1499" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1499', '_bytes', 'link-18');">_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;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1342"></a><tt class="py-lineno">1342</tt>  <tt class="py-line"> </tt>
+<a name="L1343"></a><tt class="py-lineno">1343</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1500" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1500', 'iterwalk', 'link-1261');">iterwalk</a></tt><tt class="py-op">(</tt><tt id="link-1501" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1501', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1344"></a><tt class="py-lineno">1344</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">elem</tt> <tt class="py-keyword">in</tt> <tt class="py-name">iterator</tt><tt class="py-op">:</tt> </tt>
+<a name="L1345"></a><tt class="py-lineno">1345</tt>  <tt class="py-line">            <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-1502" class="py-name"><a title="lxml.etree.DocInfo.clear
 lxml.etree._Attrib.clear
 lxml.etree._Element.clear
-lxml.etree._ErrorLog.clear" class="py-name" href="#" onclick="return doclink('link-1505', 'clear', 'link-241');">clear</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1333"></a><tt class="py-lineno">1333</tt>  <tt class="py-line"> </tt>
-<a name="L1334"></a><tt class="py-lineno">1334</tt>  <tt class="py-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>
-<a name="L1335"></a><tt class="py-lineno">1335</tt>  <tt class="py-line">                          <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-1506" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1506', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1336"></a><tt class="py-lineno">1336</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterwalk_attrib_ns"></a><div id="ETreeOnlyTestCase.test_iterwalk_attrib_ns-def"><a name="L1337"></a><tt class="py-lineno">1337</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterwalk_attrib_ns-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterwalk_attrib_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_iterwalk_attrib_ns">test_iterwalk_attrib_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_iterwalk_attrib_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterwalk_attrib_ns-expanded"><a name="L1338"></a><tt class="py-lineno">1338</tt>  <tt class="py-line">        <tt id="link-1507" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1507', 'iterwalk', 'link-1264');">iterwalk</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1508" class="py-name"><a title="lxml.etree
+lxml.etree._ErrorLog.clear" class="py-name" href="#" onclick="return doclink('link-1502', 'clear', 'link-241');">clear</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1346"></a><tt class="py-lineno">1346</tt>  <tt class="py-line"> </tt>
+<a name="L1347"></a><tt class="py-lineno">1347</tt>  <tt class="py-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>
+<a name="L1348"></a><tt class="py-lineno">1348</tt>  <tt class="py-line">                          <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-1503" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1503', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1349"></a><tt class="py-lineno">1349</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterwalk_attrib_ns"></a><div id="ETreeOnlyTestCase.test_iterwalk_attrib_ns-def"><a name="L1350"></a><tt class="py-lineno">1350</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterwalk_attrib_ns-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterwalk_attrib_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_iterwalk_attrib_ns">test_iterwalk_attrib_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_iterwalk_attrib_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterwalk_attrib_ns-expanded"><a name="L1351"></a><tt class="py-lineno">1351</tt>  <tt class="py-line">        <tt id="link-1504" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1504', 'iterwalk', 'link-1261');">iterwalk</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1505" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -4523,8 +4519,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1508', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1509" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1509', 'iterwalk', 'link-1264');">iterwalk</a></tt> </tt>
-<a name="L1339"></a><tt class="py-lineno">1339</tt>  <tt class="py-line">        <tt id="link-1510" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1510', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1511" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1505', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1506" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1506', 'iterwalk', 'link-1261');">iterwalk</a></tt> </tt>
+<a name="L1352"></a><tt class="py-lineno">1352</tt>  <tt class="py-line">        <tt id="link-1507" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1507', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1508" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -4532,48 +4528,48 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1511', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1512" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1508', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1509" 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-1512', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1513" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1513', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="ns1"&gt;&lt;b&gt;&lt;c xmlns="ns2"/&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1340"></a><tt class="py-lineno">1340</tt>  <tt class="py-line"> </tt>
-<a name="L1341"></a><tt class="py-lineno">1341</tt>  <tt class="py-line">        <tt class="py-name">attr_name</tt> <tt class="py-op">=</tt> <tt class="py-string">'{testns}bla'</tt> </tt>
-<a name="L1342"></a><tt class="py-lineno">1342</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>
-<a name="L1343"></a><tt class="py-lineno">1343</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1514" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1514', 'iterwalk', 'link-1264');">iterwalk</a></tt><tt class="py-op">(</tt><tt id="link-1515" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1515', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <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-string">'end'</tt><tt class="py-op">,</tt><tt class="py-string">'start-ns'</tt><tt class="py-op">,</tt><tt class="py-string">'end-ns'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1344"></a><tt class="py-lineno">1344</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">elem</tt> <tt class="py-keyword">in</tt> <tt class="py-name">iterator</tt><tt class="py-op">:</tt> </tt>
-<a name="L1345"></a><tt class="py-lineno">1345</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1516" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1516', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">event</tt><tt class="py-op">)</tt> </tt>
-<a name="L1346"></a><tt class="py-lineno">1346</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">event</tt> <tt class="py-op">==</tt> <tt class="py-string">'start'</tt><tt class="py-op">:</tt> </tt>
-<a name="L1347"></a><tt class="py-lineno">1347</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-1517" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1509', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1510" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1510', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="ns1"&gt;&lt;b&gt;&lt;c xmlns="ns2"/&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1353"></a><tt class="py-lineno">1353</tt>  <tt class="py-line"> </tt>
+<a name="L1354"></a><tt class="py-lineno">1354</tt>  <tt class="py-line">        <tt class="py-name">attr_name</tt> <tt class="py-op">=</tt> <tt class="py-string">'{testns}bla'</tt> </tt>
+<a name="L1355"></a><tt class="py-lineno">1355</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>
+<a name="L1356"></a><tt class="py-lineno">1356</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1511" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1511', 'iterwalk', 'link-1261');">iterwalk</a></tt><tt class="py-op">(</tt><tt id="link-1512" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1512', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <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-string">'end'</tt><tt class="py-op">,</tt><tt class="py-string">'start-ns'</tt><tt class="py-op">,</tt><tt class="py-string">'end-ns'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1357"></a><tt class="py-lineno">1357</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">elem</tt> <tt class="py-keyword">in</tt> <tt class="py-name">iterator</tt><tt class="py-op">:</tt> </tt>
+<a name="L1358"></a><tt class="py-lineno">1358</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1513" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1513', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">event</tt><tt class="py-op">)</tt> </tt>
+<a name="L1359"></a><tt class="py-lineno">1359</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">event</tt> <tt class="py-op">==</tt> <tt class="py-string">'start'</tt><tt class="py-op">:</tt> </tt>
+<a name="L1360"></a><tt class="py-lineno">1360</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-1514" 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-1517', 'tag', 'link-73');">tag</a></tt> <tt class="py-op">!=</tt> <tt class="py-string">'{ns1}a'</tt><tt class="py-op">:</tt> </tt>
-<a name="L1348"></a><tt class="py-lineno">1348</tt>  <tt class="py-line">                    <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-1518" class="py-name"><a title="lxml.etree._Element.set
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1514', 'tag', 'link-73');">tag</a></tt> <tt class="py-op">!=</tt> <tt class="py-string">'{ns1}a'</tt><tt class="py-op">:</tt> </tt>
+<a name="L1361"></a><tt class="py-lineno">1361</tt>  <tt class="py-line">                    <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-1515" class="py-name"><a title="lxml.etree._Element.set
 lxml.etree._XSLTProcessingInstruction.set
 lxml.html.HtmlElement.set
-lxml.html.HtmlMixin.set" class="py-name" href="#" onclick="return doclink('link-1518', 'set', 'link-268');">set</a></tt><tt class="py-op">(</tt><tt class="py-name">attr_name</tt><tt class="py-op">,</tt> <tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1349"></a><tt class="py-lineno">1349</tt>  <tt class="py-line"> </tt>
-<a name="L1350"></a><tt class="py-lineno">1350</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1351"></a><tt class="py-lineno">1351</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-string">'start-ns'</tt><tt class="py-op">,</tt> <tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'start-ns'</tt><tt class="py-op">,</tt> <tt class="py-string">'start'</tt><tt class="py-op">,</tt> </tt>
-<a name="L1352"></a><tt class="py-lineno">1352</tt>  <tt class="py-line">             <tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'end-ns'</tt><tt class="py-op">,</tt> <tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'end-ns'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1353"></a><tt class="py-lineno">1353</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-<a name="L1354"></a><tt class="py-lineno">1354</tt>  <tt class="py-line"> </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>
-<a name="L1356"></a><tt class="py-lineno">1356</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L1357"></a><tt class="py-lineno">1357</tt>  <tt class="py-line">            <tt id="link-1519" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1519', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1520" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.html.HtmlMixin.set" class="py-name" href="#" onclick="return doclink('link-1515', 'set', 'link-268');">set</a></tt><tt class="py-op">(</tt><tt class="py-name">attr_name</tt><tt class="py-op">,</tt> <tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1362"></a><tt class="py-lineno">1362</tt>  <tt class="py-line"> </tt>
+<a name="L1363"></a><tt class="py-lineno">1363</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1364"></a><tt class="py-lineno">1364</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-string">'start-ns'</tt><tt class="py-op">,</tt> <tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'start-ns'</tt><tt class="py-op">,</tt> <tt class="py-string">'start'</tt><tt class="py-op">,</tt> </tt>
+<a name="L1365"></a><tt class="py-lineno">1365</tt>  <tt class="py-line">             <tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'end-ns'</tt><tt class="py-op">,</tt> <tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'end-ns'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1366"></a><tt class="py-lineno">1366</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+<a name="L1367"></a><tt class="py-lineno">1367</tt>  <tt class="py-line"> </tt>
+<a name="L1368"></a><tt class="py-lineno">1368</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1369"></a><tt class="py-lineno">1369</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L1370"></a><tt class="py-lineno">1370</tt>  <tt class="py-line">            <tt id="link-1516" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1516', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1517" 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-1520', 'get', 'link-270');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">attr_name</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1358"></a><tt class="py-lineno">1358</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1359"></a><tt class="py-lineno">1359</tt>  <tt class="py-line">            <tt class="py-string">'value'</tt><tt class="py-op">,</tt> </tt>
-<a name="L1360"></a><tt class="py-lineno">1360</tt>  <tt class="py-line">            <tt id="link-1521" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1521', 'root', 'link-247');">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-1522" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-1517', 'get', 'link-270');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">attr_name</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 class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1372"></a><tt class="py-lineno">1372</tt>  <tt class="py-line">            <tt class="py-string">'value'</tt><tt class="py-op">,</tt> </tt>
+<a name="L1373"></a><tt class="py-lineno">1373</tt>  <tt class="py-line">            <tt id="link-1518" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1518', 'root', 'link-247');">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-1519" 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-1522', 'get', 'link-270');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">attr_name</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1361"></a><tt class="py-lineno">1361</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterwalk_end_skip"></a><div id="ETreeOnlyTestCase.test_iterwalk_end_skip-def"><a name="L1362"></a><tt class="py-lineno">1362</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterwalk_end_skip-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterwalk_end_skip');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_end_skip">test_iterwalk_end_skip</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterwalk_end_skip-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterwalk_end_skip-expanded"><a name="L1363"></a><tt class="py-lineno">1363</tt>  <tt class="py-line">        <tt id="link-1523" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1523', 'iterwalk', 'link-1264');">iterwalk</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1524" class="py-name"><a title="lxml.etree
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-1519', 'get', 'link-270');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">attr_name</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1374"></a><tt class="py-lineno">1374</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterwalk_end_skip"></a><div id="ETreeOnlyTestCase.test_iterwalk_end_skip-def"><a name="L1375"></a><tt class="py-lineno">1375</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterwalk_end_skip-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterwalk_end_skip');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_end_skip">test_iterwalk_end_skip</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterwalk_end_skip-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterwalk_end_skip-expanded"><a name="L1376"></a><tt class="py-lineno">1376</tt>  <tt class="py-line">        <tt id="link-1520" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1520', 'iterwalk', 'link-1261');">iterwalk</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1521" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -4581,8 +4577,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1524', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1525" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1525', 'iterwalk', 'link-1264');">iterwalk</a></tt> </tt>
-<a name="L1364"></a><tt class="py-lineno">1364</tt>  <tt class="py-line">        <tt id="link-1526" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1526', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1527" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1521', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1522" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1522', 'iterwalk', 'link-1261');">iterwalk</a></tt> </tt>
+<a name="L1377"></a><tt class="py-lineno">1377</tt>  <tt class="py-line">        <tt id="link-1523" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1523', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1524" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -4590,27 +4586,27 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1527', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1528" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1524', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1525" 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-1528', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1529" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1529', '_bytes', 'link-18');">_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;d&gt;&lt;e/&gt;&lt;/d&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1365"></a><tt class="py-lineno">1365</tt>  <tt class="py-line"> </tt>
-<a name="L1366"></a><tt class="py-lineno">1366</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1530" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1530', 'iterwalk', 'link-1264');">iterwalk</a></tt><tt class="py-op">(</tt><tt id="link-1531" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1531', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1367"></a><tt class="py-lineno">1367</tt>  <tt class="py-line">        <tt id="link-1532" 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-1532', 'tags', 'link-1532');">tags</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L1368"></a><tt class="py-lineno">1368</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">elem</tt> <tt class="py-keyword">in</tt> <tt class="py-name">iterator</tt><tt class="py-op">:</tt> </tt>
-<a name="L1369"></a><tt class="py-lineno">1369</tt>  <tt class="py-line">            <tt id="link-1533" class="py-name"><a title="lxml.html.defs.tags" class="py-name" href="#" onclick="return doclink('link-1533', 'tags', 'link-1532');">tags</a></tt><tt class="py-op">.</tt><tt id="link-1534" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1534', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-1535" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1525', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1526" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1526', '_bytes', 'link-18');">_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;d&gt;&lt;e/&gt;&lt;/d&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1378"></a><tt class="py-lineno">1378</tt>  <tt class="py-line"> </tt>
+<a name="L1379"></a><tt class="py-lineno">1379</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1527" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1527', 'iterwalk', 'link-1261');">iterwalk</a></tt><tt class="py-op">(</tt><tt id="link-1528" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1528', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1380"></a><tt class="py-lineno">1380</tt>  <tt class="py-line">        <tt id="link-1529" 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-1529', 'tags', 'link-1529');">tags</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L1381"></a><tt class="py-lineno">1381</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">elem</tt> <tt class="py-keyword">in</tt> <tt class="py-name">iterator</tt><tt class="py-op">:</tt> </tt>
+<a name="L1382"></a><tt class="py-lineno">1382</tt>  <tt class="py-line">            <tt id="link-1530" class="py-name"><a title="lxml.html.defs.tags" class="py-name" href="#" onclick="return doclink('link-1530', 'tags', 'link-1529');">tags</a></tt><tt class="py-op">.</tt><tt id="link-1531" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1531', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-1532" 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-1535', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1370"></a><tt class="py-lineno">1370</tt>  <tt class="py-line">            <tt class="py-comment"># requesting a skip after an 'end' event should never have an effect</tt> </tt>
-<a name="L1371"></a><tt class="py-lineno">1371</tt>  <tt class="py-line">            <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-1536" class="py-name" targets="Method lxml.etree.iterwalk.skip_subtree()=lxml.etree.iterwalk-class.html#skip_subtree"><a title="lxml.etree.iterwalk.skip_subtree" class="py-name" href="#" onclick="return doclink('link-1536', 'skip_subtree', 'link-1536');">skip_subtree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1372"></a><tt class="py-lineno">1372</tt>  <tt class="py-line"> </tt>
-<a name="L1373"></a><tt class="py-lineno">1373</tt>  <tt class="py-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">'c'</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-string">'d'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt id="link-1537" class="py-name"><a title="lxml.html.defs.tags" class="py-name" href="#" onclick="return doclink('link-1537', 'tags', 'link-1532');">tags</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1374"></a><tt class="py-lineno">1374</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterwalk_start_end_skip"></a><div id="ETreeOnlyTestCase.test_iterwalk_start_end_skip-def"><a name="L1375"></a><tt class="py-lineno">1375</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterwalk_start_end_skip-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterwalk_start_end_skip');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_start_end_skip">test_iterwalk_start_end_skip</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterwalk_start_end_skip-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterwalk_start_end_skip-expanded"><a name="L1376"></a><tt class="py-lineno">1376</tt>  <tt class="py-line">        <tt id="link-1538" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1538', 'iterwalk', 'link-1264');">iterwalk</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1539" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1532', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1383"></a><tt class="py-lineno">1383</tt>  <tt class="py-line">            <tt class="py-comment"># requesting a skip after an 'end' event should never have an effect</tt> </tt>
+<a name="L1384"></a><tt class="py-lineno">1384</tt>  <tt class="py-line">            <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-1533" class="py-name" targets="Method lxml.etree.iterwalk.skip_subtree()=lxml.etree.iterwalk-class.html#skip_subtree"><a title="lxml.etree.iterwalk.skip_subtree" class="py-name" href="#" onclick="return doclink('link-1533', 'skip_subtree', 'link-1533');">skip_subtree</a></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>
+<a name="L1386"></a><tt class="py-lineno">1386</tt>  <tt class="py-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">'c'</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-string">'d'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt id="link-1534" class="py-name"><a title="lxml.html.defs.tags" class="py-name" href="#" onclick="return doclink('link-1534', 'tags', 'link-1529');">tags</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1387"></a><tt class="py-lineno">1387</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterwalk_start_end_skip"></a><div id="ETreeOnlyTestCase.test_iterwalk_start_end_skip-def"><a name="L1388"></a><tt class="py-lineno">1388</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterwalk_start_end_skip-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterwalk_start_end_skip');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_start_end_skip">test_iterwalk_start_end_skip</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterwalk_start_end_skip-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterwalk_start_end_skip-expanded"><a name="L1389"></a><tt class="py-lineno">1389</tt>  <tt class="py-line">        <tt id="link-1535" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1535', 'iterwalk', 'link-1261');">iterwalk</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1536" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -4618,8 +4614,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1539', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1540" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1540', 'iterwalk', 'link-1264');">iterwalk</a></tt> </tt>
-<a name="L1377"></a><tt class="py-lineno">1377</tt>  <tt class="py-line">        <tt id="link-1541" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1541', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1542" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1536', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1537" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1537', 'iterwalk', 'link-1261');">iterwalk</a></tt> </tt>
+<a name="L1390"></a><tt class="py-lineno">1390</tt>  <tt class="py-line">        <tt id="link-1538" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1538', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1539" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -4627,40 +4623,40 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1542', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1543" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1539', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1540" 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-1543', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1544" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1544', '_bytes', 'link-18');">_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;d&gt;&lt;e/&gt;&lt;/d&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1378"></a><tt class="py-lineno">1378</tt>  <tt class="py-line"> </tt>
-<a name="L1379"></a><tt class="py-lineno">1379</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1545" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1545', 'iterwalk', 'link-1264');">iterwalk</a></tt><tt class="py-op">(</tt><tt id="link-1546" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1546', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <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-string">'end'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1380"></a><tt class="py-lineno">1380</tt>  <tt class="py-line">        <tt id="link-1547" class="py-name"><a title="lxml.html.defs.tags" class="py-name" href="#" onclick="return doclink('link-1547', 'tags', 'link-1532');">tags</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L1381"></a><tt class="py-lineno">1381</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">elem</tt> <tt class="py-keyword">in</tt> <tt class="py-name">iterator</tt><tt class="py-op">:</tt> </tt>
-<a name="L1382"></a><tt class="py-lineno">1382</tt>  <tt class="py-line">            <tt id="link-1548" class="py-name"><a title="lxml.html.defs.tags" class="py-name" href="#" onclick="return doclink('link-1548', 'tags', 'link-1532');">tags</a></tt><tt class="py-op">.</tt><tt id="link-1549" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1549', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-1550" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1540', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1541" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1541', '_bytes', 'link-18');">_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;d&gt;&lt;e/&gt;&lt;/d&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1391"></a><tt class="py-lineno">1391</tt>  <tt class="py-line"> </tt>
+<a name="L1392"></a><tt class="py-lineno">1392</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1542" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1542', 'iterwalk', 'link-1261');">iterwalk</a></tt><tt class="py-op">(</tt><tt id="link-1543" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1543', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <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-string">'end'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1393"></a><tt class="py-lineno">1393</tt>  <tt class="py-line">        <tt id="link-1544" class="py-name"><a title="lxml.html.defs.tags" class="py-name" href="#" onclick="return doclink('link-1544', 'tags', 'link-1529');">tags</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L1394"></a><tt class="py-lineno">1394</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">elem</tt> <tt class="py-keyword">in</tt> <tt class="py-name">iterator</tt><tt class="py-op">:</tt> </tt>
+<a name="L1395"></a><tt class="py-lineno">1395</tt>  <tt class="py-line">            <tt id="link-1545" class="py-name"><a title="lxml.html.defs.tags" class="py-name" href="#" onclick="return doclink('link-1545', 'tags', 'link-1529');">tags</a></tt><tt class="py-op">.</tt><tt id="link-1546" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1546', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-1547" 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-1550', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1383"></a><tt class="py-lineno">1383</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-1551" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1547', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1396"></a><tt class="py-lineno">1396</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-1548" 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-1551', 'tag', 'link-73');">tag</a></tt> <tt class="py-keyword">in</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>
-<a name="L1384"></a><tt class="py-lineno">1384</tt>  <tt class="py-line">                <tt class="py-comment"># skipping should only have an effect on 'start', not on 'end'</tt> </tt>
-<a name="L1385"></a><tt class="py-lineno">1385</tt>  <tt class="py-line">                <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-1552" class="py-name"><a title="lxml.etree.iterwalk.skip_subtree" class="py-name" href="#" onclick="return doclink('link-1552', 'skip_subtree', 'link-1536');">skip_subtree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1386"></a><tt class="py-lineno">1386</tt>  <tt class="py-line"> </tt>
-<a name="L1387"></a><tt class="py-lineno">1387</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1388"></a><tt class="py-lineno">1388</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">'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 class="py-op">(</tt><tt class="py-string">'start'</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-string">'end'</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-comment"># ignored child 'c'</tt> </tt>
-<a name="L1390"></a><tt class="py-lineno">1390</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">'d'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1391"></a><tt class="py-lineno">1391</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">'e'</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">'e'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1392"></a><tt class="py-lineno">1392</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1393"></a><tt class="py-lineno">1393</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'end'</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="L1394"></a><tt class="py-lineno">1394</tt>  <tt class="py-line">            <tt id="link-1553" class="py-name"><a title="lxml.html.defs.tags" class="py-name" href="#" onclick="return doclink('link-1553', 'tags', 'link-1532');">tags</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1395"></a><tt class="py-lineno">1395</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterwalk_ns_skip"></a><div id="ETreeOnlyTestCase.test_iterwalk_ns_skip-def"><a name="L1396"></a><tt class="py-lineno">1396</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterwalk_ns_skip-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterwalk_ns_skip');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_ns_skip">test_iterwalk_ns_skip</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterwalk_ns_skip-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterwalk_ns_skip-expanded"><a name="L1397"></a><tt class="py-lineno">1397</tt>  <tt class="py-line">        <tt id="link-1554" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1554', 'iterwalk', 'link-1264');">iterwalk</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1555" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1548', 'tag', 'link-73');">tag</a></tt> <tt class="py-keyword">in</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>
+<a name="L1397"></a><tt class="py-lineno">1397</tt>  <tt class="py-line">                <tt class="py-comment"># skipping should only have an effect on 'start', not on 'end'</tt> </tt>
+<a name="L1398"></a><tt class="py-lineno">1398</tt>  <tt class="py-line">                <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-1549" class="py-name"><a title="lxml.etree.iterwalk.skip_subtree" class="py-name" href="#" onclick="return doclink('link-1549', 'skip_subtree', 'link-1533');">skip_subtree</a></tt><tt class="py-op">(</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 class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1401"></a><tt class="py-lineno">1401</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">'a'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1402"></a><tt class="py-lineno">1402</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">'b'</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">'b'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>  <tt class="py-comment"># ignored child 'c'</tt> </tt>
+<a name="L1403"></a><tt class="py-lineno">1403</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">'d'</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 class="py-op">(</tt><tt class="py-string">'start'</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-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1405"></a><tt class="py-lineno">1405</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</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 class="py-op">(</tt><tt class="py-string">'end'</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="L1407"></a><tt class="py-lineno">1407</tt>  <tt class="py-line">            <tt id="link-1550" class="py-name"><a title="lxml.html.defs.tags" class="py-name" href="#" onclick="return doclink('link-1550', 'tags', 'link-1529');">tags</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="ETreeOnlyTestCase.test_iterwalk_ns_skip"></a><div id="ETreeOnlyTestCase.test_iterwalk_ns_skip-def"><a name="L1409"></a><tt class="py-lineno">1409</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterwalk_ns_skip-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterwalk_ns_skip');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_ns_skip">test_iterwalk_ns_skip</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterwalk_ns_skip-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterwalk_ns_skip-expanded"><a name="L1410"></a><tt class="py-lineno">1410</tt>  <tt class="py-line">        <tt id="link-1551" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1551', 'iterwalk', 'link-1261');">iterwalk</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1552" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -4668,8 +4664,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1555', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1556" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1556', 'iterwalk', 'link-1264');">iterwalk</a></tt> </tt>
-<a name="L1398"></a><tt class="py-lineno">1398</tt>  <tt class="py-line">        <tt id="link-1557" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1557', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1558" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1552', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1553" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1553', 'iterwalk', 'link-1261');">iterwalk</a></tt> </tt>
+<a name="L1411"></a><tt class="py-lineno">1411</tt>  <tt class="py-line">        <tt id="link-1554" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1554', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1555" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -4677,45 +4673,45 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1558', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1559" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1555', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1556" 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-1559', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1560" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1560', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1399"></a><tt class="py-lineno">1399</tt>  <tt class="py-line">            <tt class="py-string">'&lt;a xmlns="ns1"&gt;&lt;b xmlns="nsb"&gt;&lt;c xmlns="ns2"/&gt;&lt;/b&gt;&lt;d xmlns="ns2"&gt;&lt;e/&gt;&lt;/d&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1400"></a><tt class="py-lineno">1400</tt>  <tt class="py-line"> </tt>
-<a name="L1401"></a><tt class="py-lineno">1401</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>
-<a name="L1402"></a><tt class="py-lineno">1402</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1561" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1561', 'iterwalk', 'link-1264');">iterwalk</a></tt><tt class="py-op">(</tt><tt id="link-1562" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1562', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <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-string">'start-ns'</tt><tt class="py-op">,</tt><tt class="py-string">'end-ns'</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">for</tt> <tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">elem</tt> <tt class="py-keyword">in</tt> <tt class="py-name">iterator</tt><tt class="py-op">:</tt> </tt>
-<a name="L1404"></a><tt class="py-lineno">1404</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">event</tt> <tt class="py-keyword">in</tt> <tt class="py-op">(</tt><tt class="py-string">'start-ns'</tt><tt class="py-op">,</tt> <tt class="py-string">'end-ns'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1405"></a><tt class="py-lineno">1405</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1563" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1563', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">elem</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 class="py-keyword">if</tt> <tt class="py-name">event</tt> <tt class="py-op">==</tt> <tt class="py-string">'start-ns'</tt> <tt class="py-keyword">and</tt> <tt class="py-name">elem</tt> <tt class="py-op">==</tt> <tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-string">'nsb'</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 class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1564" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1564', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">'skip'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1408"></a><tt class="py-lineno">1408</tt>  <tt class="py-line">                    <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-1565" class="py-name"><a title="lxml.etree.iterwalk.skip_subtree" class="py-name" href="#" onclick="return doclink('link-1565', 'skip_subtree', 'link-1536');">skip_subtree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1409"></a><tt class="py-lineno">1409</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1410"></a><tt class="py-lineno">1410</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1566" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1566', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-1567" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1556', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1557" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1557', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1412"></a><tt class="py-lineno">1412</tt>  <tt class="py-line">            <tt class="py-string">'&lt;a xmlns="ns1"&gt;&lt;b xmlns="nsb"&gt;&lt;c xmlns="ns2"/&gt;&lt;/b&gt;&lt;d xmlns="ns2"&gt;&lt;e/&gt;&lt;/d&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1413"></a><tt class="py-lineno">1413</tt>  <tt class="py-line"> </tt>
+<a name="L1414"></a><tt class="py-lineno">1414</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>
+<a name="L1415"></a><tt class="py-lineno">1415</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1558" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1558', 'iterwalk', 'link-1261');">iterwalk</a></tt><tt class="py-op">(</tt><tt id="link-1559" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1559', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <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-string">'start-ns'</tt><tt class="py-op">,</tt><tt class="py-string">'end-ns'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1416"></a><tt class="py-lineno">1416</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">elem</tt> <tt class="py-keyword">in</tt> <tt class="py-name">iterator</tt><tt class="py-op">:</tt> </tt>
+<a name="L1417"></a><tt class="py-lineno">1417</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">event</tt> <tt class="py-keyword">in</tt> <tt class="py-op">(</tt><tt class="py-string">'start-ns'</tt><tt class="py-op">,</tt> <tt class="py-string">'end-ns'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1418"></a><tt class="py-lineno">1418</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1560" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1560', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">elem</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1419"></a><tt class="py-lineno">1419</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">event</tt> <tt class="py-op">==</tt> <tt class="py-string">'start-ns'</tt> <tt class="py-keyword">and</tt> <tt class="py-name">elem</tt> <tt class="py-op">==</tt> <tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-string">'nsb'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1420"></a><tt class="py-lineno">1420</tt>  <tt class="py-line">                    <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1561" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1561', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">'skip'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1421"></a><tt class="py-lineno">1421</tt>  <tt class="py-line">                    <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-1562" class="py-name"><a title="lxml.etree.iterwalk.skip_subtree" class="py-name" href="#" onclick="return doclink('link-1562', 'skip_subtree', 'link-1533');">skip_subtree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1422"></a><tt class="py-lineno">1422</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1423"></a><tt class="py-lineno">1423</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1563" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1563', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-1564" 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-1567', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt><tt class="py-op">)</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1413"></a><tt class="py-lineno">1413</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'start-ns'</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-string">'ns1'</tt><tt class="py-op">)</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 class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'{ns1}a'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1415"></a><tt class="py-lineno">1415</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'start-ns'</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-string">'nsb'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1416"></a><tt class="py-lineno">1416</tt>  <tt class="py-line">             <tt class="py-string">'skip'</tt><tt class="py-op">,</tt> </tt>
-<a name="L1417"></a><tt class="py-lineno">1417</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">'{nsb}b'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1418"></a><tt class="py-lineno">1418</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'end-ns'</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1419"></a><tt class="py-lineno">1419</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'start-ns'</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-string">'ns2'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1420"></a><tt class="py-lineno">1420</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">'{ns2}d'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1421"></a><tt class="py-lineno">1421</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">'{ns2}e'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1422"></a><tt class="py-lineno">1422</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'end-ns'</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1423"></a><tt class="py-lineno">1423</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'end-ns'</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L1424"></a><tt class="py-lineno">1424</tt>  <tt class="py-line">             <tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1425"></a><tt class="py-lineno">1425</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1426"></a><tt class="py-lineno">1426</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterwalk_getiterator"></a><div id="ETreeOnlyTestCase.test_iterwalk_getiterator-def"><a name="L1427"></a><tt class="py-lineno">1427</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterwalk_getiterator-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterwalk_getiterator');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_getiterator">test_iterwalk_getiterator</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterwalk_getiterator-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterwalk_getiterator-expanded"><a name="L1428"></a><tt class="py-lineno">1428</tt>  <tt class="py-line">        <tt id="link-1568" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1568', 'iterwalk', 'link-1264');">iterwalk</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1569" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1564', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1424"></a><tt class="py-lineno">1424</tt>  <tt class="py-line"> </tt>
+<a name="L1425"></a><tt class="py-lineno">1425</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1426"></a><tt class="py-lineno">1426</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'start-ns'</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-string">'ns1'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1427"></a><tt class="py-lineno">1427</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">'{ns1}a'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1428"></a><tt class="py-lineno">1428</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'start-ns'</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-string">'nsb'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1429"></a><tt class="py-lineno">1429</tt>  <tt class="py-line">             <tt class="py-string">'skip'</tt><tt class="py-op">,</tt> </tt>
+<a name="L1430"></a><tt class="py-lineno">1430</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">'{nsb}b'</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 class="py-op">(</tt><tt class="py-string">'end-ns'</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1432"></a><tt class="py-lineno">1432</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'start-ns'</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-string">'ns2'</tt><tt class="py-op">)</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-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'{ns2}d'</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-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'{ns2}e'</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-op">(</tt><tt class="py-string">'end-ns'</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1436"></a><tt class="py-lineno">1436</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'end-ns'</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L1437"></a><tt class="py-lineno">1437</tt>  <tt class="py-line">             <tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1438"></a><tt class="py-lineno">1438</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1439"></a><tt class="py-lineno">1439</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterwalk_getiterator"></a><div id="ETreeOnlyTestCase.test_iterwalk_getiterator-def"><a name="L1440"></a><tt class="py-lineno">1440</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterwalk_getiterator-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterwalk_getiterator');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_getiterator">test_iterwalk_getiterator</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterwalk_getiterator-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterwalk_getiterator-expanded"><a name="L1441"></a><tt class="py-lineno">1441</tt>  <tt class="py-line">        <tt id="link-1565" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1565', 'iterwalk', 'link-1261');">iterwalk</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1566" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -4723,8 +4719,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1569', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1570" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1570', 'iterwalk', 'link-1264');">iterwalk</a></tt> </tt>
-<a name="L1429"></a><tt class="py-lineno">1429</tt>  <tt class="py-line">        <tt id="link-1571" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1571', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1572" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1566', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1567" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1567', 'iterwalk', 'link-1261');">iterwalk</a></tt> </tt>
+<a name="L1442"></a><tt class="py-lineno">1442</tt>  <tt class="py-line">        <tt id="link-1568" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1568', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1569" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -4732,27 +4728,27 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1572', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1573" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1569', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1570" 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-1573', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1574" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1574', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;d/&gt;&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1430"></a><tt class="py-lineno">1430</tt>  <tt class="py-line"> </tt>
-<a name="L1431"></a><tt class="py-lineno">1431</tt>  <tt class="py-line">        <tt class="py-name">counts</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L1432"></a><tt class="py-lineno">1432</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">elem</tt> <tt class="py-keyword">in</tt> <tt id="link-1575" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1575', 'iterwalk', 'link-1264');">iterwalk</a></tt><tt class="py-op">(</tt><tt id="link-1576" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1576', 'root', 'link-247');">root</a></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-name">counts</tt><tt class="py-op">.</tt><tt id="link-1577" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1577', 'append', 'link-726');">append</a></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">elem</tt><tt class="py-op">.</tt><tt id="link-1578" class="py-name" targets="Method lxml.etree._Element.getiterator()=lxml.etree._Element-class.html#getiterator,Method lxml.etree._ElementTree.getiterator()=lxml.etree._ElementTree-class.html#getiterator"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1578', 'getiterator', 'link-1578');">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>
-<a name="L1434"></a><tt class="py-lineno">1434</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1435"></a><tt class="py-lineno">1435</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">1</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="L1436"></a><tt class="py-lineno">1436</tt>  <tt class="py-line">            <tt class="py-name">counts</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1437"></a><tt class="py-lineno">1437</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_resolve_string_dtd"></a><div id="ETreeOnlyTestCase.test_resolve_string_dtd-def"><a name="L1438"></a><tt class="py-lineno">1438</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_resolve_string_dtd-toggle" onclick="return toggle('ETreeOnlyTestCase.test_resolve_string_dtd');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_string_dtd">test_resolve_string_dtd</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_resolve_string_dtd-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_resolve_string_dtd-expanded"><a name="L1439"></a><tt class="py-lineno">1439</tt>  <tt class="py-line">        <tt id="link-1579" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1570', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1571" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1571', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;d/&gt;&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;'</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>
+<a name="L1444"></a><tt class="py-lineno">1444</tt>  <tt class="py-line">        <tt class="py-name">counts</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L1445"></a><tt class="py-lineno">1445</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">elem</tt> <tt class="py-keyword">in</tt> <tt id="link-1572" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1572', 'iterwalk', 'link-1261');">iterwalk</a></tt><tt class="py-op">(</tt><tt id="link-1573" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1573', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1446"></a><tt class="py-lineno">1446</tt>  <tt class="py-line">            <tt class="py-name">counts</tt><tt class="py-op">.</tt><tt id="link-1574" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1574', 'append', 'link-322');">append</a></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">elem</tt><tt class="py-op">.</tt><tt id="link-1575" class="py-name" targets="Method lxml.etree._Element.getiterator()=lxml.etree._Element-class.html#getiterator,Method lxml.etree._ElementTree.getiterator()=lxml.etree._ElementTree-class.html#getiterator"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1575', 'getiterator', 'link-1575');">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>
+<a name="L1447"></a><tt class="py-lineno">1447</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1448"></a><tt class="py-lineno">1448</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">1</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="L1449"></a><tt class="py-lineno">1449</tt>  <tt class="py-line">            <tt class="py-name">counts</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1450"></a><tt class="py-lineno">1450</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_resolve_string_dtd"></a><div id="ETreeOnlyTestCase.test_resolve_string_dtd-def"><a name="L1451"></a><tt class="py-lineno">1451</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_resolve_string_dtd-toggle" onclick="return toggle('ETreeOnlyTestCase.test_resolve_string_dtd');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_string_dtd">test_resolve_string_dtd</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_resolve_string_dtd-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_resolve_string_dtd-expanded"><a name="L1452"></a><tt class="py-lineno">1452</tt>  <tt class="py-line">        <tt id="link-1576" 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-1579', 'parse', 'link-870');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1580" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1576', 'parse', 'link-867');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1577" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -4760,15 +4756,15 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1580', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1581" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1577', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1578" 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-1581', 'parse', 'link-870');">parse</a></tt> </tt>
-<a name="L1440"></a><tt class="py-lineno">1440</tt>  <tt class="py-line">        <tt id="link-1582" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1582', 'parser', 'link-861');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1583" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1578', 'parse', 'link-867');">parse</a></tt> </tt>
+<a name="L1453"></a><tt class="py-lineno">1453</tt>  <tt class="py-line">        <tt id="link-1579" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1579', 'parser', 'link-858');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1580" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -4776,48 +4772,48 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1583', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1584" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1580', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1581" 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-1584', 'XMLParser', 'link-856');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">dtd_validation</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L1441"></a><tt class="py-lineno">1441</tt>  <tt class="py-line">        <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
-<a name="L1442"></a><tt class="py-lineno">1442</tt>  <tt class="py-line">        <tt class="py-name">test_url</tt> <tt class="py-op">=</tt> <tt id="link-1585" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1585', '_str', 'link-17');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">"__nosuch.dtd"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1443"></a><tt class="py-lineno">1443</tt>  <tt class="py-line"> </tt>
-<a name="L1444"></a><tt class="py-lineno">1444</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyResolver</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">Resolver</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1445"></a><tt class="py-lineno">1445</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="L1446"></a><tt class="py-lineno">1446</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">,</tt> <tt class="py-name">test_url</tt><tt class="py-op">)</tt> </tt>
-<a name="L1447"></a><tt class="py-lineno">1447</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-1586" class="py-name" targets="Method lxml.etree.Resolver.resolve_string()=lxml.etree.Resolver-class.html#resolve_string"><a title="lxml.etree.Resolver.resolve_string" class="py-name" href="#" onclick="return doclink('link-1586', 'resolve_string', 'link-1586');">resolve_string</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1448"></a><tt class="py-lineno">1448</tt>  <tt class="py-line">                    <tt id="link-1587" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1587', '_str', 'link-17');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'''&lt;!ENTITY myentity "%s"&gt;</tt> </tt>
-<a name="L1449"></a><tt class="py-lineno">1449</tt>  <tt class="py-line"><tt class="py-string">                        &lt;!ELEMENT doc ANY&gt;'''</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">url</tt><tt class="py-op">,</tt> <tt class="py-name">context</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1450"></a><tt class="py-lineno">1450</tt>  <tt class="py-line"> </tt>
-<a name="L1451"></a><tt class="py-lineno">1451</tt>  <tt class="py-line">        <tt id="link-1588" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1588', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1589" class="py-name" targets="Variable lxml.etree.iterparse.resolvers=lxml.etree.iterparse-class.html#resolvers"><a title="lxml.etree.iterparse.resolvers" class="py-name" href="#" onclick="return doclink('link-1589', 'resolvers', 'link-1589');">resolvers</a></tt><tt class="py-op">.</tt><tt id="link-1590" class="py-name" targets="Method lxml.html.CheckboxValues.add()=lxml.html.CheckboxValues-class.html#add,Method lxml.html.Classes.add()=lxml.html.Classes-class.html#add,Method lxml.html.MultipleSelectOptions.add()=lxml.html.MultipleSelectOptions-class.html#add"><a title="lxml.html.CheckboxValues.add
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1581', 'XMLParser', 'link-853');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">dtd_validation</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L1454"></a><tt class="py-lineno">1454</tt>  <tt class="py-line">        <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
+<a name="L1455"></a><tt class="py-lineno">1455</tt>  <tt class="py-line">        <tt class="py-name">test_url</tt> <tt class="py-op">=</tt> <tt id="link-1582" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1582', '_str', 'link-17');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">"__nosuch.dtd"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1456"></a><tt class="py-lineno">1456</tt>  <tt class="py-line"> </tt>
+<a name="L1457"></a><tt class="py-lineno">1457</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyResolver</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">Resolver</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1458"></a><tt class="py-lineno">1458</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="L1459"></a><tt class="py-lineno">1459</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">,</tt> <tt class="py-name">test_url</tt><tt class="py-op">)</tt> </tt>
+<a name="L1460"></a><tt class="py-lineno">1460</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-1583" class="py-name" targets="Method lxml.etree.Resolver.resolve_string()=lxml.etree.Resolver-class.html#resolve_string"><a title="lxml.etree.Resolver.resolve_string" class="py-name" href="#" onclick="return doclink('link-1583', 'resolve_string', 'link-1583');">resolve_string</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1461"></a><tt class="py-lineno">1461</tt>  <tt class="py-line">                    <tt id="link-1584" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1584', '_str', 'link-17');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'''&lt;!ENTITY myentity "%s"&gt;</tt> </tt>
+<a name="L1462"></a><tt class="py-lineno">1462</tt>  <tt class="py-line"><tt class="py-string">                        &lt;!ELEMENT doc ANY&gt;'''</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">url</tt><tt class="py-op">,</tt> <tt class="py-name">context</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 id="link-1585" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1585', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1586" class="py-name" targets="Variable lxml.etree.iterparse.resolvers=lxml.etree.iterparse-class.html#resolvers"><a title="lxml.etree.iterparse.resolvers" class="py-name" href="#" onclick="return doclink('link-1586', 'resolvers', 'link-1586');">resolvers</a></tt><tt class="py-op">.</tt><tt id="link-1587" class="py-name" targets="Method lxml.html.CheckboxValues.add()=lxml.html.CheckboxValues-class.html#add,Method lxml.html.Classes.add()=lxml.html.Classes-class.html#add,Method lxml.html.MultipleSelectOptions.add()=lxml.html.MultipleSelectOptions-class.html#add"><a title="lxml.html.CheckboxValues.add
 lxml.html.Classes.add
-lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-1590', 'add', 'link-1590');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">MyResolver</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1452"></a><tt class="py-lineno">1452</tt>  <tt class="py-line"> </tt>
-<a name="L1453"></a><tt class="py-lineno">1453</tt>  <tt class="py-line">        <tt id="link-1591" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1591', 'xml', 'link-361');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-1592" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1592', '_str', 'link-17');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE doc SYSTEM "%s"&gt;&lt;doc&gt;&amp;myentity;&lt;/doc&gt;'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">test_url</tt> </tt>
-<a name="L1454"></a><tt class="py-lineno">1454</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-1593" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-1587', 'add', 'link-1587');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">MyResolver</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 id="link-1588" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1588', 'xml', 'link-358');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-1589" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1589', '_str', 'link-17');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE doc SYSTEM "%s"&gt;&lt;doc&gt;&amp;myentity;&lt;/doc&gt;'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">test_url</tt> </tt>
+<a name="L1467"></a><tt class="py-lineno">1467</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-1590" 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-1593', 'parse', 'link-870');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">StringIO</tt><tt class="py-op">(</tt><tt id="link-1594" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1594', 'xml', 'link-361');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-1595" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1595', 'parser', 'link-861');">parser</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1455"></a><tt class="py-lineno">1455</tt>  <tt class="py-line">        <tt id="link-1596" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1596', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1597" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-1597', 'getroot', 'link-805');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1456"></a><tt class="py-lineno">1456</tt>  <tt class="py-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-1598" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1598', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1599" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1590', 'parse', 'link-867');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">StringIO</tt><tt class="py-op">(</tt><tt id="link-1591" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1591', 'xml', 'link-358');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-1592" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1592', 'parser', 'link-858');">parser</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1468"></a><tt class="py-lineno">1468</tt>  <tt class="py-line">        <tt id="link-1593" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1593', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1594" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-1594', 'getroot', 'link-802');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1469"></a><tt class="py-lineno">1469</tt>  <tt class="py-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-1595" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1595', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1596" 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-1599', 'text', 'link-205');">text</a></tt><tt class="py-op">,</tt> <tt class="py-name">test_url</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1457"></a><tt class="py-lineno">1457</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_resolve_bytes_dtd"></a><div id="ETreeOnlyTestCase.test_resolve_bytes_dtd-def"><a name="L1458"></a><tt class="py-lineno">1458</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_resolve_bytes_dtd-toggle" onclick="return toggle('ETreeOnlyTestCase.test_resolve_bytes_dtd');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_bytes_dtd">test_resolve_bytes_dtd</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_resolve_bytes_dtd-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_resolve_bytes_dtd-expanded"><a name="L1459"></a><tt class="py-lineno">1459</tt>  <tt class="py-line">        <tt id="link-1600" class="py-name"><a title="lxml.etree._ElementTree.parse
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1596', 'text', 'link-205');">text</a></tt><tt class="py-op">,</tt> <tt class="py-name">test_url</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1470"></a><tt class="py-lineno">1470</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_resolve_bytes_dtd"></a><div id="ETreeOnlyTestCase.test_resolve_bytes_dtd-def"><a name="L1471"></a><tt class="py-lineno">1471</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_resolve_bytes_dtd-toggle" onclick="return toggle('ETreeOnlyTestCase.test_resolve_bytes_dtd');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_bytes_dtd">test_resolve_bytes_dtd</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_resolve_bytes_dtd-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_resolve_bytes_dtd-expanded"><a name="L1472"></a><tt class="py-lineno">1472</tt>  <tt class="py-line">        <tt id="link-1597" 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-1600', 'parse', 'link-870');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1601" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1597', 'parse', 'link-867');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1598" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -4825,15 +4821,15 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1601', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1602" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1598', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1599" 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-1602', 'parse', 'link-870');">parse</a></tt> </tt>
-<a name="L1460"></a><tt class="py-lineno">1460</tt>  <tt class="py-line">        <tt id="link-1603" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1603', 'parser', 'link-861');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1604" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1599', 'parse', 'link-867');">parse</a></tt> </tt>
+<a name="L1473"></a><tt class="py-lineno">1473</tt>  <tt class="py-line">        <tt id="link-1600" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1600', 'parser', 'link-858');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1601" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -4841,49 +4837,49 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1604', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1605" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1601', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1602" 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-1605', 'XMLParser', 'link-856');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">dtd_validation</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L1461"></a><tt class="py-lineno">1461</tt>  <tt class="py-line">        <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
-<a name="L1462"></a><tt class="py-lineno">1462</tt>  <tt class="py-line">        <tt class="py-name">test_url</tt> <tt class="py-op">=</tt> <tt id="link-1606" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1606', '_str', 'link-17');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">"__nosuch.dtd"</tt><tt class="py-op">)</tt> </tt>
-<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-keyword">class</tt> <tt class="py-def-name">MyResolver</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">Resolver</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 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="L1466"></a><tt class="py-lineno">1466</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">,</tt> <tt class="py-name">test_url</tt><tt class="py-op">)</tt> </tt>
-<a name="L1467"></a><tt class="py-lineno">1467</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-1607" class="py-name"><a title="lxml.etree.Resolver.resolve_string" class="py-name" href="#" onclick="return doclink('link-1607', 'resolve_string', 'link-1586');">resolve_string</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1468"></a><tt class="py-lineno">1468</tt>  <tt class="py-line">                    <tt class="py-op">(</tt><tt id="link-1608" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1608', '_str', 'link-17');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'''&lt;!ENTITY myentity "%s"&gt;</tt> </tt>
-<a name="L1469"></a><tt class="py-lineno">1469</tt>  <tt class="py-line"><tt class="py-string">                             &lt;!ELEMENT doc ANY&gt;'''</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">url</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="L1470"></a><tt class="py-lineno">1470</tt>  <tt class="py-line">                    <tt class="py-name">context</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1471"></a><tt class="py-lineno">1471</tt>  <tt class="py-line"> </tt>
-<a name="L1472"></a><tt class="py-lineno">1472</tt>  <tt class="py-line">        <tt id="link-1609" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1609', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1610" class="py-name"><a title="lxml.etree.iterparse.resolvers" class="py-name" href="#" onclick="return doclink('link-1610', 'resolvers', 'link-1589');">resolvers</a></tt><tt class="py-op">.</tt><tt id="link-1611" class="py-name"><a title="lxml.html.CheckboxValues.add
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1602', 'XMLParser', 'link-853');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">dtd_validation</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L1474"></a><tt class="py-lineno">1474</tt>  <tt class="py-line">        <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
+<a name="L1475"></a><tt class="py-lineno">1475</tt>  <tt class="py-line">        <tt class="py-name">test_url</tt> <tt class="py-op">=</tt> <tt id="link-1603" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1603', '_str', 'link-17');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">"__nosuch.dtd"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1476"></a><tt class="py-lineno">1476</tt>  <tt class="py-line"> </tt>
+<a name="L1477"></a><tt class="py-lineno">1477</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyResolver</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">Resolver</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1478"></a><tt class="py-lineno">1478</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="L1479"></a><tt class="py-lineno">1479</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">,</tt> <tt class="py-name">test_url</tt><tt class="py-op">)</tt> </tt>
+<a name="L1480"></a><tt class="py-lineno">1480</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-1604" class="py-name"><a title="lxml.etree.Resolver.resolve_string" class="py-name" href="#" onclick="return doclink('link-1604', 'resolve_string', 'link-1583');">resolve_string</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1481"></a><tt class="py-lineno">1481</tt>  <tt class="py-line">                    <tt class="py-op">(</tt><tt id="link-1605" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1605', '_str', 'link-17');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'''&lt;!ENTITY myentity "%s"&gt;</tt> </tt>
+<a name="L1482"></a><tt class="py-lineno">1482</tt>  <tt class="py-line"><tt class="py-string">                             &lt;!ELEMENT doc ANY&gt;'''</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">url</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="L1483"></a><tt class="py-lineno">1483</tt>  <tt class="py-line">                    <tt class="py-name">context</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 id="link-1606" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1606', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1607" class="py-name"><a title="lxml.etree.iterparse.resolvers" class="py-name" href="#" onclick="return doclink('link-1607', 'resolvers', 'link-1586');">resolvers</a></tt><tt class="py-op">.</tt><tt id="link-1608" class="py-name"><a title="lxml.html.CheckboxValues.add
 lxml.html.Classes.add
-lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-1611', 'add', 'link-1590');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">MyResolver</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1473"></a><tt class="py-lineno">1473</tt>  <tt class="py-line"> </tt>
-<a name="L1474"></a><tt class="py-lineno">1474</tt>  <tt class="py-line">        <tt id="link-1612" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1612', 'xml', 'link-361');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-1613" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1613', '_str', 'link-17');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE doc SYSTEM "%s"&gt;&lt;doc&gt;&amp;myentity;&lt;/doc&gt;'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">test_url</tt> </tt>
-<a name="L1475"></a><tt class="py-lineno">1475</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-1614" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-1608', 'add', 'link-1587');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">MyResolver</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 id="link-1609" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1609', 'xml', 'link-358');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-1610" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1610', '_str', 'link-17');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE doc SYSTEM "%s"&gt;&lt;doc&gt;&amp;myentity;&lt;/doc&gt;'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">test_url</tt> </tt>
+<a name="L1488"></a><tt class="py-lineno">1488</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-1611" 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-1614', 'parse', 'link-870');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">StringIO</tt><tt class="py-op">(</tt><tt id="link-1615" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1615', 'xml', 'link-361');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-1616" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1616', 'parser', 'link-861');">parser</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1476"></a><tt class="py-lineno">1476</tt>  <tt class="py-line">        <tt id="link-1617" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1617', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1618" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-1618', 'getroot', 'link-805');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1477"></a><tt class="py-lineno">1477</tt>  <tt class="py-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-1619" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1619', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1620" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1611', 'parse', 'link-867');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">StringIO</tt><tt class="py-op">(</tt><tt id="link-1612" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1612', 'xml', 'link-358');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-1613" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1613', 'parser', 'link-858');">parser</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1489"></a><tt class="py-lineno">1489</tt>  <tt class="py-line">        <tt id="link-1614" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1614', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1615" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-1615', 'getroot', 'link-802');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1490"></a><tt class="py-lineno">1490</tt>  <tt class="py-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-1616" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1616', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1617" 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-1620', 'text', 'link-205');">text</a></tt><tt class="py-op">,</tt> <tt class="py-name">test_url</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1478"></a><tt class="py-lineno">1478</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_resolve_filelike_dtd"></a><div id="ETreeOnlyTestCase.test_resolve_filelike_dtd-def"><a name="L1479"></a><tt class="py-lineno">1479</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_resolve_filelike_dtd-toggle" onclick="return toggle('ETreeOnlyTestCase.test_resolve_filelike_dtd');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_filelike_dtd">test_resolve_filelike_dtd</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_resolve_filelike_dtd-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_resolve_filelike_dtd-expanded"><a name="L1480"></a><tt class="py-lineno">1480</tt>  <tt class="py-line">        <tt id="link-1621" class="py-name"><a title="lxml.etree._ElementTree.parse
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1617', 'text', 'link-205');">text</a></tt><tt class="py-op">,</tt> <tt class="py-name">test_url</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1491"></a><tt class="py-lineno">1491</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_resolve_filelike_dtd"></a><div id="ETreeOnlyTestCase.test_resolve_filelike_dtd-def"><a name="L1492"></a><tt class="py-lineno">1492</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_resolve_filelike_dtd-toggle" onclick="return toggle('ETreeOnlyTestCase.test_resolve_filelike_dtd');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_filelike_dtd">test_resolve_filelike_dtd</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_resolve_filelike_dtd-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_resolve_filelike_dtd-expanded"><a name="L1493"></a><tt class="py-lineno">1493</tt>  <tt class="py-line">        <tt id="link-1618" 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-1621', 'parse', 'link-870');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1622" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1618', 'parse', 'link-867');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1619" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -4891,15 +4887,15 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1622', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1623" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1619', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1620" 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-1623', 'parse', 'link-870');">parse</a></tt> </tt>
-<a name="L1481"></a><tt class="py-lineno">1481</tt>  <tt class="py-line">        <tt id="link-1624" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1624', 'parser', 'link-861');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1625" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1620', 'parse', 'link-867');">parse</a></tt> </tt>
+<a name="L1494"></a><tt class="py-lineno">1494</tt>  <tt class="py-line">        <tt id="link-1621" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1621', 'parser', 'link-858');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1622" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -4907,49 +4903,49 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1625', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1626" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1622', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1623" 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-1626', 'XMLParser', 'link-856');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">dtd_validation</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L1482"></a><tt class="py-lineno">1482</tt>  <tt class="py-line">        <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
-<a name="L1483"></a><tt class="py-lineno">1483</tt>  <tt class="py-line">        <tt class="py-name">test_url</tt> <tt class="py-op">=</tt> <tt id="link-1627" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1627', '_str', 'link-17');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">"__nosuch.dtd"</tt><tt class="py-op">)</tt> </tt>
-<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-keyword">class</tt> <tt class="py-def-name">MyResolver</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">Resolver</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 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="L1487"></a><tt class="py-lineno">1487</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">,</tt> <tt class="py-name">test_url</tt><tt class="py-op">)</tt> </tt>
-<a name="L1488"></a><tt class="py-lineno">1488</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-1628" class="py-name" targets="Method lxml.etree.Resolver.resolve_file()=lxml.etree.Resolver-class.html#resolve_file"><a title="lxml.etree.Resolver.resolve_file" class="py-name" href="#" onclick="return doclink('link-1628', 'resolve_file', 'link-1628');">resolve_file</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1489"></a><tt class="py-lineno">1489</tt>  <tt class="py-line">                    <tt id="link-1629" class="py-name"><a title="lxml.tests.common_imports.SillyFileLike" class="py-name" href="#" onclick="return doclink('link-1629', 'SillyFileLike', 'link-12');">SillyFileLike</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1490"></a><tt class="py-lineno">1490</tt>  <tt class="py-line">                        <tt id="link-1630" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1630', '_str', 'link-17');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'''&lt;!ENTITY myentity "%s"&gt;</tt> </tt>
-<a name="L1491"></a><tt class="py-lineno">1491</tt>  <tt class="py-line"><tt class="py-string">                        &lt;!ELEMENT doc ANY&gt;'''</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">url</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">context</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1492"></a><tt class="py-lineno">1492</tt>  <tt class="py-line"> </tt>
-<a name="L1493"></a><tt class="py-lineno">1493</tt>  <tt class="py-line">        <tt id="link-1631" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1631', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1632" class="py-name"><a title="lxml.etree.iterparse.resolvers" class="py-name" href="#" onclick="return doclink('link-1632', 'resolvers', 'link-1589');">resolvers</a></tt><tt class="py-op">.</tt><tt id="link-1633" class="py-name"><a title="lxml.html.CheckboxValues.add
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1623', 'XMLParser', 'link-853');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">dtd_validation</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L1495"></a><tt class="py-lineno">1495</tt>  <tt class="py-line">        <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
+<a name="L1496"></a><tt class="py-lineno">1496</tt>  <tt class="py-line">        <tt class="py-name">test_url</tt> <tt class="py-op">=</tt> <tt id="link-1624" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1624', '_str', 'link-17');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">"__nosuch.dtd"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1497"></a><tt class="py-lineno">1497</tt>  <tt class="py-line"> </tt>
+<a name="L1498"></a><tt class="py-lineno">1498</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyResolver</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">Resolver</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1499"></a><tt class="py-lineno">1499</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="L1500"></a><tt class="py-lineno">1500</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">,</tt> <tt class="py-name">test_url</tt><tt class="py-op">)</tt> </tt>
+<a name="L1501"></a><tt class="py-lineno">1501</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-1625" class="py-name" targets="Method lxml.etree.Resolver.resolve_file()=lxml.etree.Resolver-class.html#resolve_file"><a title="lxml.etree.Resolver.resolve_file" class="py-name" href="#" onclick="return doclink('link-1625', 'resolve_file', 'link-1625');">resolve_file</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1502"></a><tt class="py-lineno">1502</tt>  <tt class="py-line">                    <tt id="link-1626" class="py-name"><a title="lxml.tests.common_imports.SillyFileLike" class="py-name" href="#" onclick="return doclink('link-1626', 'SillyFileLike', 'link-12');">SillyFileLike</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1503"></a><tt class="py-lineno">1503</tt>  <tt class="py-line">                        <tt id="link-1627" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1627', '_str', 'link-17');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'''&lt;!ENTITY myentity "%s"&gt;</tt> </tt>
+<a name="L1504"></a><tt class="py-lineno">1504</tt>  <tt class="py-line"><tt class="py-string">                        &lt;!ELEMENT doc ANY&gt;'''</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">url</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">context</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1505"></a><tt class="py-lineno">1505</tt>  <tt class="py-line"> </tt>
+<a name="L1506"></a><tt class="py-lineno">1506</tt>  <tt class="py-line">        <tt id="link-1628" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1628', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1629" class="py-name"><a title="lxml.etree.iterparse.resolvers" class="py-name" href="#" onclick="return doclink('link-1629', 'resolvers', 'link-1586');">resolvers</a></tt><tt class="py-op">.</tt><tt id="link-1630" class="py-name"><a title="lxml.html.CheckboxValues.add
 lxml.html.Classes.add
-lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-1633', 'add', 'link-1590');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">MyResolver</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1494"></a><tt class="py-lineno">1494</tt>  <tt class="py-line"> </tt>
-<a name="L1495"></a><tt class="py-lineno">1495</tt>  <tt class="py-line">        <tt id="link-1634" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1634', 'xml', 'link-361');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-1635" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1635', '_str', 'link-17');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE doc SYSTEM "%s"&gt;&lt;doc&gt;&amp;myentity;&lt;/doc&gt;'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">test_url</tt> </tt>
-<a name="L1496"></a><tt class="py-lineno">1496</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-1636" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-1630', 'add', 'link-1587');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">MyResolver</tt><tt class="py-op">(</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>
+<a name="L1508"></a><tt class="py-lineno">1508</tt>  <tt class="py-line">        <tt id="link-1631" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1631', 'xml', 'link-358');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-1632" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1632', '_str', 'link-17');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE doc SYSTEM "%s"&gt;&lt;doc&gt;&amp;myentity;&lt;/doc&gt;'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">test_url</tt> </tt>
+<a name="L1509"></a><tt class="py-lineno">1509</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-1633" 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-1636', 'parse', 'link-870');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">StringIO</tt><tt class="py-op">(</tt><tt id="link-1637" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1637', 'xml', 'link-361');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-1638" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1638', 'parser', 'link-861');">parser</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1497"></a><tt class="py-lineno">1497</tt>  <tt class="py-line">        <tt id="link-1639" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1639', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1640" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-1640', 'getroot', 'link-805');">getroot</a></tt><tt class="py-op">(</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1641" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1641', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1642" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1633', 'parse', 'link-867');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">StringIO</tt><tt class="py-op">(</tt><tt id="link-1634" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1634', 'xml', 'link-358');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-1635" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1635', 'parser', 'link-858');">parser</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1510"></a><tt class="py-lineno">1510</tt>  <tt class="py-line">        <tt id="link-1636" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1636', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1637" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-1637', 'getroot', 'link-802');">getroot</a></tt><tt class="py-op">(</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1638" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1638', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1639" 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-1642', 'text', 'link-205');">text</a></tt><tt class="py-op">,</tt> <tt class="py-name">test_url</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1499"></a><tt class="py-lineno">1499</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_resolve_filename_dtd"></a><div id="ETreeOnlyTestCase.test_resolve_filename_dtd-def"><a name="L1500"></a><tt class="py-lineno">1500</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_resolve_filename_dtd-toggle" onclick="return toggle('ETreeOnlyTestCase.test_resolve_filename_dtd');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_filename_dtd">test_resolve_filename_dtd</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_resolve_filename_dtd-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_resolve_filename_dtd-expanded"><a name="L1501"></a><tt class="py-lineno">1501</tt>  <tt class="py-line">        <tt id="link-1643" class="py-name"><a title="lxml.etree._ElementTree.parse
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1639', 'text', 'link-205');">text</a></tt><tt class="py-op">,</tt> <tt class="py-name">test_url</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1512"></a><tt class="py-lineno">1512</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_resolve_filename_dtd"></a><div id="ETreeOnlyTestCase.test_resolve_filename_dtd-def"><a name="L1513"></a><tt class="py-lineno">1513</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_resolve_filename_dtd-toggle" onclick="return toggle('ETreeOnlyTestCase.test_resolve_filename_dtd');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_filename_dtd">test_resolve_filename_dtd</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_resolve_filename_dtd-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_resolve_filename_dtd-expanded"><a name="L1514"></a><tt class="py-lineno">1514</tt>  <tt class="py-line">        <tt id="link-1640" 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-1643', 'parse', 'link-870');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1644" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1640', 'parse', 'link-867');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1641" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -4957,15 +4953,15 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1644', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1645" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1641', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1642" 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-1645', 'parse', 'link-870');">parse</a></tt> </tt>
-<a name="L1502"></a><tt class="py-lineno">1502</tt>  <tt class="py-line">        <tt id="link-1646" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1646', 'parser', 'link-861');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1647" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1642', 'parse', 'link-867');">parse</a></tt> </tt>
+<a name="L1515"></a><tt class="py-lineno">1515</tt>  <tt class="py-line">        <tt id="link-1643" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1643', 'parser', 'link-858');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1644" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -4973,52 +4969,52 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1647', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1648" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1644', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1645" 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-1648', 'XMLParser', 'link-856');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">attribute_defaults</tt><tt class="py-op">=</tt><tt class="py-name">True</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">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
-<a name="L1504"></a><tt class="py-lineno">1504</tt>  <tt class="py-line">        <tt class="py-name">test_url</tt> <tt class="py-op">=</tt> <tt id="link-1649" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1649', '_str', 'link-17');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">"__nosuch.dtd"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1505"></a><tt class="py-lineno">1505</tt>  <tt class="py-line"> </tt>
-<a name="L1506"></a><tt class="py-lineno">1506</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyResolver</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">Resolver</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">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="L1508"></a><tt class="py-lineno">1508</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">,</tt> <tt class="py-name">test_url</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">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1650" class="py-name" targets="Method lxml.etree.Resolver.resolve_filename()=lxml.etree.Resolver-class.html#resolve_filename"><a title="lxml.etree.Resolver.resolve_filename" class="py-name" href="#" onclick="return doclink('link-1650', 'resolve_filename', 'link-1650');">resolve_filename</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1510"></a><tt class="py-lineno">1510</tt>  <tt class="py-line">                    <tt id="link-1651" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-1651', 'fileInTestDir', 'link-6');">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>
-</div></div><a name="L1511"></a><tt class="py-lineno">1511</tt>  <tt class="py-line"> </tt>
-<a name="L1512"></a><tt class="py-lineno">1512</tt>  <tt class="py-line">        <tt id="link-1652" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1652', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1653" class="py-name"><a title="lxml.etree.iterparse.resolvers" class="py-name" href="#" onclick="return doclink('link-1653', 'resolvers', 'link-1589');">resolvers</a></tt><tt class="py-op">.</tt><tt id="link-1654" class="py-name"><a title="lxml.html.CheckboxValues.add
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1645', 'XMLParser', 'link-853');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">attribute_defaults</tt><tt class="py-op">=</tt><tt class="py-name">True</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">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
+<a name="L1517"></a><tt class="py-lineno">1517</tt>  <tt class="py-line">        <tt class="py-name">test_url</tt> <tt class="py-op">=</tt> <tt id="link-1646" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1646', '_str', 'link-17');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">"__nosuch.dtd"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1518"></a><tt class="py-lineno">1518</tt>  <tt class="py-line"> </tt>
+<a name="L1519"></a><tt class="py-lineno">1519</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyResolver</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">Resolver</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 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="L1521"></a><tt class="py-lineno">1521</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">,</tt> <tt class="py-name">test_url</tt><tt class="py-op">)</tt> </tt>
+<a name="L1522"></a><tt class="py-lineno">1522</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-1647" class="py-name" targets="Method lxml.etree.Resolver.resolve_filename()=lxml.etree.Resolver-class.html#resolve_filename"><a title="lxml.etree.Resolver.resolve_filename" class="py-name" href="#" onclick="return doclink('link-1647', 'resolve_filename', 'link-1647');">resolve_filename</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1523"></a><tt class="py-lineno">1523</tt>  <tt class="py-line">                    <tt id="link-1648" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-1648', 'fileInTestDir', 'link-6');">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>
+</div></div><a name="L1524"></a><tt class="py-lineno">1524</tt>  <tt class="py-line"> </tt>
+<a name="L1525"></a><tt class="py-lineno">1525</tt>  <tt class="py-line">        <tt id="link-1649" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1649', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1650" class="py-name"><a title="lxml.etree.iterparse.resolvers" class="py-name" href="#" onclick="return doclink('link-1650', 'resolvers', 'link-1586');">resolvers</a></tt><tt class="py-op">.</tt><tt id="link-1651" class="py-name"><a title="lxml.html.CheckboxValues.add
 lxml.html.Classes.add
-lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-1654', 'add', 'link-1590');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">MyResolver</tt><tt class="py-op">(</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>
-<a name="L1514"></a><tt class="py-lineno">1514</tt>  <tt class="py-line">        <tt id="link-1655" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1655', 'xml', 'link-361');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-1656" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1656', '_str', 'link-17');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE a SYSTEM "%s"&gt;&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">test_url</tt> </tt>
-<a name="L1515"></a><tt class="py-lineno">1515</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-1657" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-1651', 'add', 'link-1587');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">MyResolver</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1526"></a><tt class="py-lineno">1526</tt>  <tt class="py-line"> </tt>
+<a name="L1527"></a><tt class="py-lineno">1527</tt>  <tt class="py-line">        <tt id="link-1652" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1652', 'xml', 'link-358');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-1653" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1653', '_str', 'link-17');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE a SYSTEM "%s"&gt;&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">test_url</tt> </tt>
+<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 id="link-1654" 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-1657', 'parse', 'link-870');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">StringIO</tt><tt class="py-op">(</tt><tt id="link-1658" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1658', 'xml', 'link-361');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-1659" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1659', 'parser', 'link-861');">parser</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1516"></a><tt class="py-lineno">1516</tt>  <tt class="py-line">        <tt id="link-1660" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1660', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1661" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-1661', 'getroot', 'link-805');">getroot</a></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 class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1518"></a><tt class="py-lineno">1518</tt>  <tt class="py-line">            <tt id="link-1662" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1662', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1663" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1654', 'parse', 'link-867');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">StringIO</tt><tt class="py-op">(</tt><tt id="link-1655" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1655', 'xml', 'link-358');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-1656" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1656', 'parser', 'link-858');">parser</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1529"></a><tt class="py-lineno">1529</tt>  <tt class="py-line">        <tt id="link-1657" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1657', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1658" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-1658', 'getroot', 'link-802');">getroot</a></tt><tt class="py-op">(</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1531"></a><tt class="py-lineno">1531</tt>  <tt class="py-line">            <tt id="link-1659" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1659', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1660" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1663', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">,</tt>    <tt class="py-op">{</tt><tt class="py-string">'default'</tt><tt class="py-op">:</tt> <tt class="py-string">'valueA'</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1520"></a><tt class="py-lineno">1520</tt>  <tt class="py-line">            <tt id="link-1664" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1664', 'root', 'link-247');">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-1665" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1660', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">,</tt>    <tt class="py-op">{</tt><tt class="py-string">'default'</tt><tt class="py-op">:</tt> <tt class="py-string">'valueA'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L1532"></a><tt class="py-lineno">1532</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1533"></a><tt class="py-lineno">1533</tt>  <tt class="py-line">            <tt id="link-1661" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1661', 'root', 'link-247');">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-1662" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1665', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'default'</tt><tt class="py-op">:</tt> <tt class="py-string">'valueB'</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="ETreeOnlyTestCase.test_resolve_filename_dtd_relative"></a><div id="ETreeOnlyTestCase.test_resolve_filename_dtd_relative-def"><a name="L1522"></a><tt class="py-lineno">1522</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_resolve_filename_dtd_relative-toggle" onclick="return toggle('ETreeOnlyTestCase.test_resolve_filename_dtd_relative');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_filename_dtd_relative">test_resolve_filename_dtd_relative</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_resolve_filename_dtd_relative-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_resolve_filename_dtd_relative-expanded"><a name="L1523"></a><tt class="py-lineno">1523</tt>  <tt class="py-line">        <tt id="link-1666" class="py-name"><a title="lxml.etree._ElementTree.parse
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1662', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'default'</tt><tt class="py-op">:</tt> <tt class="py-string">'valueB'</tt><tt class="py-op">}</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_resolve_filename_dtd_relative"></a><div id="ETreeOnlyTestCase.test_resolve_filename_dtd_relative-def"><a name="L1535"></a><tt class="py-lineno">1535</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_resolve_filename_dtd_relative-toggle" onclick="return toggle('ETreeOnlyTestCase.test_resolve_filename_dtd_relative');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_filename_dtd_relative">test_resolve_filename_dtd_relative</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_resolve_filename_dtd_relative-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_resolve_filename_dtd_relative-expanded"><a name="L1536"></a><tt class="py-lineno">1536</tt>  <tt class="py-line">        <tt id="link-1663" 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-1666', 'parse', 'link-870');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1667" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1663', 'parse', 'link-867');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1664" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -5026,15 +5022,15 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1667', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1668" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1664', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1665" 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-1668', 'parse', 'link-870');">parse</a></tt> </tt>
-<a name="L1524"></a><tt class="py-lineno">1524</tt>  <tt class="py-line">        <tt id="link-1669" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1669', 'parser', 'link-861');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1670" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1665', 'parse', 'link-867');">parse</a></tt> </tt>
+<a name="L1537"></a><tt class="py-lineno">1537</tt>  <tt class="py-line">        <tt id="link-1666" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1666', 'parser', 'link-858');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1667" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -5042,56 +5038,56 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1670', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1671" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1667', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1668" 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-1671', 'XMLParser', 'link-856');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">attribute_defaults</tt><tt class="py-op">=</tt><tt class="py-name">True</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">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
-<a name="L1526"></a><tt class="py-lineno">1526</tt>  <tt class="py-line">        <tt class="py-name">test_url</tt> <tt class="py-op">=</tt> <tt id="link-1672" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1672', '_str', 'link-17');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">"__nosuch.dtd"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1527"></a><tt class="py-lineno">1527</tt>  <tt class="py-line"> </tt>
-<a name="L1528"></a><tt class="py-lineno">1528</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyResolver</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">Resolver</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1529"></a><tt class="py-lineno">1529</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="L1530"></a><tt class="py-lineno">1530</tt>  <tt class="py-line">                <tt class="py-name">expected</tt> <tt class="py-op">=</tt> <tt id="link-1673" class="py-name"><a title="lxml.tests.common_imports.fileUrlInTestDir" class="py-name" href="#" onclick="return doclink('link-1673', 'fileUrlInTestDir', 'link-7');">fileUrlInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-name">test_url</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">url</tt> <tt class="py-op">=</tt> <tt class="py-name">url</tt><tt class="py-op">.</tt><tt id="link-1674" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-1674', 'replace', 'link-644');">replace</a></tt><tt class="py-op">(</tt><tt class="py-string">'file://'</tt><tt class="py-op">,</tt> <tt class="py-string">'file:'</tt><tt class="py-op">)</tt>  <tt class="py-comment"># depends on libxml2 version</tt> </tt>
-<a name="L1532"></a><tt class="py-lineno">1532</tt>  <tt class="py-line">                <tt class="py-name">expected</tt> <tt class="py-op">=</tt> <tt class="py-name">expected</tt><tt class="py-op">.</tt><tt id="link-1675" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-1675', 'replace', 'link-644');">replace</a></tt><tt class="py-op">(</tt><tt class="py-string">'file://'</tt><tt class="py-op">,</tt> <tt class="py-string">'file:'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1533"></a><tt class="py-lineno">1533</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">,</tt> <tt class="py-name">expected</tt><tt class="py-op">)</tt> </tt>
-<a name="L1534"></a><tt class="py-lineno">1534</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-1676" class="py-name"><a title="lxml.etree.Resolver.resolve_filename" class="py-name" href="#" onclick="return doclink('link-1676', 'resolve_filename', 'link-1650');">resolve_filename</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1535"></a><tt class="py-lineno">1535</tt>  <tt class="py-line">                    <tt id="link-1677" class="py-name"><a title="lxml.tests.common_imports.fileUrlInTestDir" class="py-name" href="#" onclick="return doclink('link-1677', 'fileUrlInTestDir', 'link-7');">fileUrlInTestDir</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>
-</div></div><a name="L1536"></a><tt class="py-lineno">1536</tt>  <tt class="py-line"> </tt>
-<a name="L1537"></a><tt class="py-lineno">1537</tt>  <tt class="py-line">        <tt id="link-1678" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1678', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1679" class="py-name"><a title="lxml.etree.iterparse.resolvers" class="py-name" href="#" onclick="return doclink('link-1679', 'resolvers', 'link-1589');">resolvers</a></tt><tt class="py-op">.</tt><tt id="link-1680" class="py-name"><a title="lxml.html.CheckboxValues.add
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1668', 'XMLParser', 'link-853');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">attribute_defaults</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L1538"></a><tt class="py-lineno">1538</tt>  <tt class="py-line">        <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
+<a name="L1539"></a><tt class="py-lineno">1539</tt>  <tt class="py-line">        <tt class="py-name">test_url</tt> <tt class="py-op">=</tt> <tt id="link-1669" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1669', '_str', 'link-17');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">"__nosuch.dtd"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1540"></a><tt class="py-lineno">1540</tt>  <tt class="py-line"> </tt>
+<a name="L1541"></a><tt class="py-lineno">1541</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyResolver</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">Resolver</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 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="L1543"></a><tt class="py-lineno">1543</tt>  <tt class="py-line">                <tt class="py-name">expected</tt> <tt class="py-op">=</tt> <tt id="link-1670" class="py-name"><a title="lxml.tests.common_imports.fileUrlInTestDir" class="py-name" href="#" onclick="return doclink('link-1670', 'fileUrlInTestDir', 'link-7');">fileUrlInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-name">test_url</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">url</tt> <tt class="py-op">=</tt> <tt class="py-name">url</tt><tt class="py-op">.</tt><tt id="link-1671" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-1671', 'replace', 'link-641');">replace</a></tt><tt class="py-op">(</tt><tt class="py-string">'file://'</tt><tt class="py-op">,</tt> <tt class="py-string">'file:'</tt><tt class="py-op">)</tt>  <tt class="py-comment"># depends on libxml2 version</tt> </tt>
+<a name="L1545"></a><tt class="py-lineno">1545</tt>  <tt class="py-line">                <tt class="py-name">expected</tt> <tt class="py-op">=</tt> <tt class="py-name">expected</tt><tt class="py-op">.</tt><tt id="link-1672" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-1672', 'replace', 'link-641');">replace</a></tt><tt class="py-op">(</tt><tt class="py-string">'file://'</tt><tt class="py-op">,</tt> <tt class="py-string">'file:'</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">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">,</tt> <tt class="py-name">expected</tt><tt class="py-op">)</tt> </tt>
+<a name="L1547"></a><tt class="py-lineno">1547</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-1673" class="py-name"><a title="lxml.etree.Resolver.resolve_filename" class="py-name" href="#" onclick="return doclink('link-1673', 'resolve_filename', 'link-1647');">resolve_filename</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1548"></a><tt class="py-lineno">1548</tt>  <tt class="py-line">                    <tt id="link-1674" class="py-name"><a title="lxml.tests.common_imports.fileUrlInTestDir" class="py-name" href="#" onclick="return doclink('link-1674', 'fileUrlInTestDir', 'link-7');">fileUrlInTestDir</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>
+</div></div><a name="L1549"></a><tt class="py-lineno">1549</tt>  <tt class="py-line"> </tt>
+<a name="L1550"></a><tt class="py-lineno">1550</tt>  <tt class="py-line">        <tt id="link-1675" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1675', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1676" class="py-name"><a title="lxml.etree.iterparse.resolvers" class="py-name" href="#" onclick="return doclink('link-1676', 'resolvers', 'link-1586');">resolvers</a></tt><tt class="py-op">.</tt><tt id="link-1677" class="py-name"><a title="lxml.html.CheckboxValues.add
 lxml.html.Classes.add
-lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-1680', 'add', 'link-1590');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">MyResolver</tt><tt class="py-op">(</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>
-<a name="L1539"></a><tt class="py-lineno">1539</tt>  <tt class="py-line">        <tt id="link-1681" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1681', 'xml', 'link-361');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-1682" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1682', '_str', 'link-17');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE a SYSTEM "%s"&gt;&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">test_url</tt> </tt>
-<a name="L1540"></a><tt class="py-lineno">1540</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-1683" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-1677', 'add', 'link-1587');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">MyResolver</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1551"></a><tt class="py-lineno">1551</tt>  <tt class="py-line"> </tt>
+<a name="L1552"></a><tt class="py-lineno">1552</tt>  <tt class="py-line">        <tt id="link-1678" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1678', 'xml', 'link-358');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-1679" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1679', '_str', 'link-17');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE a SYSTEM "%s"&gt;&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">test_url</tt> </tt>
+<a name="L1553"></a><tt class="py-lineno">1553</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-1680" 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-1683', 'parse', 'link-870');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">StringIO</tt><tt class="py-op">(</tt><tt id="link-1684" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1684', 'xml', 'link-361');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-1685" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1685', 'parser', 'link-861');">parser</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L1541"></a><tt class="py-lineno">1541</tt>  <tt class="py-line">                     <tt id="link-1686" class="py-name" targets="Variable lxml.html.HtmlMixin.base_url=lxml.html.HtmlMixin-class.html#base_url"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-1686', 'base_url', 'link-1686');">base_url</a></tt><tt class="py-op">=</tt><tt id="link-1687" class="py-name"><a title="lxml.tests.common_imports.fileUrlInTestDir" class="py-name" href="#" onclick="return doclink('link-1687', 'fileUrlInTestDir', 'link-7');">fileUrlInTestDir</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="L1542"></a><tt class="py-lineno">1542</tt>  <tt class="py-line">        <tt id="link-1688" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1688', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1689" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-1689', 'getroot', 'link-805');">getroot</a></tt><tt class="py-op">(</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>
-<a name="L1544"></a><tt class="py-lineno">1544</tt>  <tt class="py-line">            <tt id="link-1690" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1690', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1691" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1680', 'parse', 'link-867');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">StringIO</tt><tt class="py-op">(</tt><tt id="link-1681" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1681', 'xml', 'link-358');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-1682" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1682', 'parser', 'link-858');">parser</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L1554"></a><tt class="py-lineno">1554</tt>  <tt class="py-line">                     <tt id="link-1683" class="py-name" targets="Variable lxml.html.HtmlMixin.base_url=lxml.html.HtmlMixin-class.html#base_url"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-1683', 'base_url', 'link-1683');">base_url</a></tt><tt class="py-op">=</tt><tt id="link-1684" class="py-name"><a title="lxml.tests.common_imports.fileUrlInTestDir" class="py-name" href="#" onclick="return doclink('link-1684', 'fileUrlInTestDir', 'link-7');">fileUrlInTestDir</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="L1555"></a><tt class="py-lineno">1555</tt>  <tt class="py-line">        <tt id="link-1685" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1685', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1686" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-1686', 'getroot', 'link-802');">getroot</a></tt><tt class="py-op">(</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>
+<a name="L1557"></a><tt class="py-lineno">1557</tt>  <tt class="py-line">            <tt id="link-1687" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1687', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1688" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1691', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">,</tt>    <tt class="py-op">{</tt><tt class="py-string">'default'</tt><tt class="py-op">:</tt> <tt class="py-string">'valueA'</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 class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1546"></a><tt class="py-lineno">1546</tt>  <tt class="py-line">            <tt id="link-1692" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1692', 'root', 'link-247');">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-1693" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1688', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">,</tt>    <tt class="py-op">{</tt><tt class="py-string">'default'</tt><tt class="py-op">:</tt> <tt class="py-string">'valueA'</tt><tt class="py-op">}</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>
+<a name="L1559"></a><tt class="py-lineno">1559</tt>  <tt class="py-line">            <tt id="link-1689" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1689', 'root', 'link-247');">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-1690" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1693', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'default'</tt><tt class="py-op">:</tt> <tt class="py-string">'valueB'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1547"></a><tt class="py-lineno">1547</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_resolve_file_dtd"></a><div id="ETreeOnlyTestCase.test_resolve_file_dtd-def"><a name="L1548"></a><tt class="py-lineno">1548</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_resolve_file_dtd-toggle" onclick="return toggle('ETreeOnlyTestCase.test_resolve_file_dtd');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_file_dtd">test_resolve_file_dtd</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_resolve_file_dtd-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_resolve_file_dtd-expanded"><a name="L1549"></a><tt class="py-lineno">1549</tt>  <tt class="py-line">        <tt id="link-1694" class="py-name"><a title="lxml.etree._ElementTree.parse
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1690', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'default'</tt><tt class="py-op">:</tt> <tt class="py-string">'valueB'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1560"></a><tt class="py-lineno">1560</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_resolve_file_dtd"></a><div id="ETreeOnlyTestCase.test_resolve_file_dtd-def"><a name="L1561"></a><tt class="py-lineno">1561</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_resolve_file_dtd-toggle" onclick="return toggle('ETreeOnlyTestCase.test_resolve_file_dtd');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_file_dtd">test_resolve_file_dtd</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_resolve_file_dtd-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_resolve_file_dtd-expanded"><a name="L1562"></a><tt class="py-lineno">1562</tt>  <tt class="py-line">        <tt id="link-1691" 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-1694', 'parse', 'link-870');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1695" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1691', 'parse', 'link-867');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1692" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -5099,15 +5095,15 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1695', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1696" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1692', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1693" 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-1696', 'parse', 'link-870');">parse</a></tt> </tt>
-<a name="L1550"></a><tt class="py-lineno">1550</tt>  <tt class="py-line">        <tt id="link-1697" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1697', 'parser', 'link-861');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1698" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1693', 'parse', 'link-867');">parse</a></tt> </tt>
+<a name="L1563"></a><tt class="py-lineno">1563</tt>  <tt class="py-line">        <tt id="link-1694" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1694', 'parser', 'link-858');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1695" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -5115,52 +5111,52 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1698', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1699" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1695', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1696" 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-1699', 'XMLParser', 'link-856');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">attribute_defaults</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L1551"></a><tt class="py-lineno">1551</tt>  <tt class="py-line">        <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
-<a name="L1552"></a><tt class="py-lineno">1552</tt>  <tt class="py-line">        <tt class="py-name">test_url</tt> <tt class="py-op">=</tt> <tt id="link-1700" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1700', '_str', 'link-17');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">"__nosuch.dtd"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1553"></a><tt class="py-lineno">1553</tt>  <tt class="py-line"> </tt>
-<a name="L1554"></a><tt class="py-lineno">1554</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyResolver</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">Resolver</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 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="L1556"></a><tt class="py-lineno">1556</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">,</tt> <tt class="py-name">test_url</tt><tt class="py-op">)</tt> </tt>
-<a name="L1557"></a><tt class="py-lineno">1557</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-1701" class="py-name"><a title="lxml.etree.Resolver.resolve_file" class="py-name" href="#" onclick="return doclink('link-1701', 'resolve_file', 'link-1628');">resolve_file</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">open</tt><tt class="py-op">(</tt><tt id="link-1702" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-1702', 'fileInTestDir', 'link-6');">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-string">'rb'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">context</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1559"></a><tt class="py-lineno">1559</tt>  <tt class="py-line"> </tt>
-<a name="L1560"></a><tt class="py-lineno">1560</tt>  <tt class="py-line">        <tt id="link-1703" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1703', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1704" class="py-name"><a title="lxml.etree.iterparse.resolvers" class="py-name" href="#" onclick="return doclink('link-1704', 'resolvers', 'link-1589');">resolvers</a></tt><tt class="py-op">.</tt><tt id="link-1705" class="py-name"><a title="lxml.html.CheckboxValues.add
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1696', 'XMLParser', 'link-853');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">attribute_defaults</tt><tt class="py-op">=</tt><tt class="py-name">True</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">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
+<a name="L1565"></a><tt class="py-lineno">1565</tt>  <tt class="py-line">        <tt class="py-name">test_url</tt> <tt class="py-op">=</tt> <tt id="link-1697" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1697', '_str', 'link-17');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">"__nosuch.dtd"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1566"></a><tt class="py-lineno">1566</tt>  <tt class="py-line"> </tt>
+<a name="L1567"></a><tt class="py-lineno">1567</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyResolver</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">Resolver</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-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="L1569"></a><tt class="py-lineno">1569</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">,</tt> <tt class="py-name">test_url</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">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1698" class="py-name"><a title="lxml.etree.Resolver.resolve_file" class="py-name" href="#" onclick="return doclink('link-1698', 'resolve_file', 'link-1625');">resolve_file</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">open</tt><tt class="py-op">(</tt><tt id="link-1699" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-1699', 'fileInTestDir', 'link-6');">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-string">'rb'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">context</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1572"></a><tt class="py-lineno">1572</tt>  <tt class="py-line"> </tt>
+<a name="L1573"></a><tt class="py-lineno">1573</tt>  <tt class="py-line">        <tt id="link-1700" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1700', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1701" class="py-name"><a title="lxml.etree.iterparse.resolvers" class="py-name" href="#" onclick="return doclink('link-1701', 'resolvers', 'link-1586');">resolvers</a></tt><tt class="py-op">.</tt><tt id="link-1702" class="py-name"><a title="lxml.html.CheckboxValues.add
 lxml.html.Classes.add
-lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-1705', 'add', 'link-1590');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">MyResolver</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1561"></a><tt class="py-lineno">1561</tt>  <tt class="py-line"> </tt>
-<a name="L1562"></a><tt class="py-lineno">1562</tt>  <tt class="py-line">        <tt id="link-1706" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1706', 'xml', 'link-361');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-1707" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1707', '_str', 'link-17');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE a SYSTEM "%s"&gt;&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">test_url</tt> </tt>
-<a name="L1563"></a><tt class="py-lineno">1563</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-1708" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-1702', 'add', 'link-1587');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">MyResolver</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1574"></a><tt class="py-lineno">1574</tt>  <tt class="py-line"> </tt>
+<a name="L1575"></a><tt class="py-lineno">1575</tt>  <tt class="py-line">        <tt id="link-1703" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1703', 'xml', 'link-358');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-1704" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1704', '_str', 'link-17');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE a SYSTEM "%s"&gt;&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">test_url</tt> </tt>
+<a name="L1576"></a><tt class="py-lineno">1576</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-1705" 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-1708', 'parse', 'link-870');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">StringIO</tt><tt class="py-op">(</tt><tt id="link-1709" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1709', 'xml', 'link-361');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-1710" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1710', 'parser', 'link-861');">parser</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1564"></a><tt class="py-lineno">1564</tt>  <tt class="py-line">        <tt id="link-1711" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1711', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1712" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-1712', 'getroot', 'link-805');">getroot</a></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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1566"></a><tt class="py-lineno">1566</tt>  <tt class="py-line">            <tt id="link-1713" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1713', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1714" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1705', 'parse', 'link-867');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">StringIO</tt><tt class="py-op">(</tt><tt id="link-1706" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1706', 'xml', 'link-358');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-1707" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1707', 'parser', 'link-858');">parser</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1577"></a><tt class="py-lineno">1577</tt>  <tt class="py-line">        <tt id="link-1708" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1708', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1709" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-1709', 'getroot', 'link-802');">getroot</a></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 class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1579"></a><tt class="py-lineno">1579</tt>  <tt class="py-line">            <tt id="link-1710" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1710', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1711" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1714', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">,</tt>    <tt class="py-op">{</tt><tt class="py-string">'default'</tt><tt class="py-op">:</tt> <tt class="py-string">'valueA'</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1568"></a><tt class="py-lineno">1568</tt>  <tt class="py-line">            <tt id="link-1715" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1715', 'root', 'link-247');">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-1716" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1711', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">,</tt>    <tt class="py-op">{</tt><tt class="py-string">'default'</tt><tt class="py-op">:</tt> <tt class="py-string">'valueA'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L1580"></a><tt class="py-lineno">1580</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1581"></a><tt class="py-lineno">1581</tt>  <tt class="py-line">            <tt id="link-1712" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1712', 'root', 'link-247');">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-1713" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1716', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'default'</tt><tt class="py-op">:</tt> <tt class="py-string">'valueB'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1569"></a><tt class="py-lineno">1569</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_resolve_empty"></a><div id="ETreeOnlyTestCase.test_resolve_empty-def"><a name="L1570"></a><tt class="py-lineno">1570</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_resolve_empty-toggle" onclick="return toggle('ETreeOnlyTestCase.test_resolve_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_resolve_empty">test_resolve_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_resolve_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_resolve_empty-expanded"><a name="L1571"></a><tt class="py-lineno">1571</tt>  <tt class="py-line">        <tt id="link-1717" class="py-name"><a title="lxml.etree._ElementTree.parse
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1713', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'default'</tt><tt class="py-op">:</tt> <tt class="py-string">'valueB'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1582"></a><tt class="py-lineno">1582</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_resolve_empty"></a><div id="ETreeOnlyTestCase.test_resolve_empty-def"><a name="L1583"></a><tt class="py-lineno">1583</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_resolve_empty-toggle" onclick="return toggle('ETreeOnlyTestCase.test_resolve_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_resolve_empty">test_resolve_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_resolve_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_resolve_empty-expanded"><a name="L1584"></a><tt class="py-lineno">1584</tt>  <tt class="py-line">        <tt id="link-1714" 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-1717', 'parse', 'link-870');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1718" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1714', 'parse', 'link-867');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1715" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -5168,15 +5164,15 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1718', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1719" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1715', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1716" 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-1719', 'parse', 'link-870');">parse</a></tt> </tt>
-<a name="L1572"></a><tt class="py-lineno">1572</tt>  <tt class="py-line">        <tt id="link-1720" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1720', 'parser', 'link-861');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1721" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1716', 'parse', 'link-867');">parse</a></tt> </tt>
+<a name="L1585"></a><tt class="py-lineno">1585</tt>  <tt class="py-line">        <tt id="link-1717" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1717', 'parser', 'link-858');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1718" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -5184,28 +5180,28 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1721', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1722" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1718', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1719" 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-1722', 'XMLParser', 'link-856');">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="L1573"></a><tt class="py-lineno">1573</tt>  <tt class="py-line">        <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
-<a name="L1574"></a><tt class="py-lineno">1574</tt>  <tt class="py-line">        <tt class="py-name">test_url</tt> <tt class="py-op">=</tt> <tt id="link-1723" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1723', '_str', 'link-17');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">"__nosuch.dtd"</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-keyword">class</tt> <tt class="py-def-name">check</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="L1577"></a><tt class="py-lineno">1577</tt>  <tt class="py-line">            <tt class="py-name">resolved</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-</div><a name="L1578"></a><tt class="py-lineno">1578</tt>  <tt class="py-line"> </tt>
-<a name="L1579"></a><tt class="py-lineno">1579</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyResolver</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">Resolver</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1580"></a><tt class="py-lineno">1580</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="L1581"></a><tt class="py-lineno">1581</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">,</tt> <tt class="py-name">test_url</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">check</tt><tt class="py-op">.</tt><tt class="py-name">resolved</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L1583"></a><tt class="py-lineno">1583</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-1724" class="py-name" targets="Method lxml.etree.Resolver.resolve_empty()=lxml.etree.Resolver-class.html#resolve_empty"><a title="lxml.etree.Resolver.resolve_empty" class="py-name" href="#" onclick="return doclink('link-1724', 'resolve_empty', 'link-1724');">resolve_empty</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1584"></a><tt class="py-lineno">1584</tt>  <tt class="py-line"> </tt>
-<a name="L1585"></a><tt class="py-lineno">1585</tt>  <tt class="py-line">        <tt id="link-1725" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1725', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1726" class="py-name"><a title="lxml.etree.iterparse.resolvers" class="py-name" href="#" onclick="return doclink('link-1726', 'resolvers', 'link-1589');">resolvers</a></tt><tt class="py-op">.</tt><tt id="link-1727" class="py-name"><a title="lxml.html.CheckboxValues.add
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1719', 'XMLParser', 'link-853');">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="L1586"></a><tt class="py-lineno">1586</tt>  <tt class="py-line">        <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
+<a name="L1587"></a><tt class="py-lineno">1587</tt>  <tt class="py-line">        <tt class="py-name">test_url</tt> <tt class="py-op">=</tt> <tt id="link-1720" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1720', '_str', 'link-17');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">"__nosuch.dtd"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1588"></a><tt class="py-lineno">1588</tt>  <tt class="py-line"> </tt>
+<a name="L1589"></a><tt class="py-lineno">1589</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">check</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="L1590"></a><tt class="py-lineno">1590</tt>  <tt class="py-line">            <tt class="py-name">resolved</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+</div><a name="L1591"></a><tt class="py-lineno">1591</tt>  <tt class="py-line"> </tt>
+<a name="L1592"></a><tt class="py-lineno">1592</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyResolver</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">Resolver</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1593"></a><tt class="py-lineno">1593</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="L1594"></a><tt class="py-lineno">1594</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">,</tt> <tt class="py-name">test_url</tt><tt class="py-op">)</tt> </tt>
+<a name="L1595"></a><tt class="py-lineno">1595</tt>  <tt class="py-line">                <tt class="py-name">check</tt><tt class="py-op">.</tt><tt class="py-name">resolved</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L1596"></a><tt class="py-lineno">1596</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-1721" class="py-name" targets="Method lxml.etree.Resolver.resolve_empty()=lxml.etree.Resolver-class.html#resolve_empty"><a title="lxml.etree.Resolver.resolve_empty" class="py-name" href="#" onclick="return doclink('link-1721', 'resolve_empty', 'link-1721');">resolve_empty</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">)</tt> </tt>
+</div></div><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 id="link-1722" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1722', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1723" class="py-name"><a title="lxml.etree.iterparse.resolvers" class="py-name" href="#" onclick="return doclink('link-1723', 'resolvers', 'link-1586');">resolvers</a></tt><tt class="py-op">.</tt><tt id="link-1724" class="py-name"><a title="lxml.html.CheckboxValues.add
 lxml.html.Classes.add
-lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-1727', 'add', 'link-1590');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">MyResolver</tt><tt class="py-op">(</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>
-<a name="L1587"></a><tt class="py-lineno">1587</tt>  <tt class="py-line">        <tt id="link-1728" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1728', 'xml', 'link-361');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-1729" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1729', '_str', 'link-17');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE doc SYSTEM "%s"&gt;&lt;doc&gt;&amp;myentity;&lt;/doc&gt;'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">test_url</tt> </tt>
-<a name="L1588"></a><tt class="py-lineno">1588</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 id="link-1730" class="py-name"><a title="lxml.etree
+lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-1724', 'add', 'link-1587');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">MyResolver</tt><tt class="py-op">(</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>
+<a name="L1600"></a><tt class="py-lineno">1600</tt>  <tt class="py-line">        <tt id="link-1725" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1725', 'xml', 'link-358');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-1726" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1726', '_str', 'link-17');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE doc SYSTEM "%s"&gt;&lt;doc&gt;&amp;myentity;&lt;/doc&gt;'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">test_url</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 class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt id="link-1727" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -5213,24 +5209,24 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1730', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1731" class="py-name"><a title="lxml.etree.XMLSyntaxError" class="py-name" href="#" onclick="return doclink('link-1731', 'XMLSyntaxError', 'link-955');">XMLSyntaxError</a></tt><tt class="py-op">,</tt> <tt id="link-1732" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1727', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1728" class="py-name"><a title="lxml.etree.XMLSyntaxError" class="py-name" href="#" onclick="return doclink('link-1728', 'XMLSyntaxError', 'link-952');">XMLSyntaxError</a></tt><tt class="py-op">,</tt> <tt id="link-1729" 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-1732', 'parse', 'link-870');">parse</a></tt><tt class="py-op">,</tt> <tt class="py-name">StringIO</tt><tt class="py-op">(</tt><tt id="link-1733" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1733', 'xml', 'link-361');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-1734" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1734', 'parser', 'link-861');">parser</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1589"></a><tt class="py-lineno">1589</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">check</tt><tt class="py-op">.</tt><tt class="py-name">resolved</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1590"></a><tt class="py-lineno">1590</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_resolve_error"></a><div id="ETreeOnlyTestCase.test_resolve_error-def"><a name="L1591"></a><tt class="py-lineno">1591</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_resolve_error-toggle" onclick="return toggle('ETreeOnlyTestCase.test_resolve_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_resolve_error">test_resolve_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_resolve_error-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_resolve_error-expanded"><a name="L1592"></a><tt class="py-lineno">1592</tt>  <tt class="py-line">        <tt id="link-1735" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1729', 'parse', 'link-867');">parse</a></tt><tt class="py-op">,</tt> <tt class="py-name">StringIO</tt><tt class="py-op">(</tt><tt id="link-1730" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1730', 'xml', 'link-358');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-1731" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1731', 'parser', 'link-858');">parser</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1602"></a><tt class="py-lineno">1602</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">check</tt><tt class="py-op">.</tt><tt class="py-name">resolved</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1603"></a><tt class="py-lineno">1603</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_resolve_error"></a><div id="ETreeOnlyTestCase.test_resolve_error-def"><a name="L1604"></a><tt class="py-lineno">1604</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_resolve_error-toggle" onclick="return toggle('ETreeOnlyTestCase.test_resolve_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_resolve_error">test_resolve_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_resolve_error-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_resolve_error-expanded"><a name="L1605"></a><tt class="py-lineno">1605</tt>  <tt class="py-line">        <tt id="link-1732" 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-1735', 'parse', 'link-870');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1736" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1732', 'parse', 'link-867');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1733" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -5238,15 +5234,15 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1736', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1737" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1733', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1734" 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-1737', 'parse', 'link-870');">parse</a></tt> </tt>
-<a name="L1593"></a><tt class="py-lineno">1593</tt>  <tt class="py-line">        <tt id="link-1738" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1738', 'parser', 'link-861');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1739" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1734', 'parse', 'link-867');">parse</a></tt> </tt>
+<a name="L1606"></a><tt class="py-lineno">1606</tt>  <tt class="py-line">        <tt id="link-1735" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1735', 'parser', 'link-858');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1736" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -5254,40 +5250,40 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1739', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1740" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1736', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1737" 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-1740', 'XMLParser', 'link-856');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">dtd_validation</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</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-keyword">class</tt> <tt class="py-def-name">_LocalException</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="L1596"></a><tt class="py-lineno">1596</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
-</div><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">MyResolver</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">Resolver</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">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="L1600"></a><tt class="py-lineno">1600</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">_LocalException</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 id="link-1741" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1741', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1742" class="py-name"><a title="lxml.etree.iterparse.resolvers" class="py-name" href="#" onclick="return doclink('link-1742', 'resolvers', 'link-1589');">resolvers</a></tt><tt class="py-op">.</tt><tt id="link-1743" class="py-name"><a title="lxml.html.CheckboxValues.add
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1737', 'XMLParser', 'link-853');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">dtd_validation</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L1607"></a><tt class="py-lineno">1607</tt>  <tt class="py-line"> </tt>
+<a name="L1608"></a><tt class="py-lineno">1608</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">_LocalException</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="L1609"></a><tt class="py-lineno">1609</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L1610"></a><tt class="py-lineno">1610</tt>  <tt class="py-line"> </tt>
+<a name="L1611"></a><tt class="py-lineno">1611</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyResolver</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">Resolver</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 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="L1613"></a><tt class="py-lineno">1613</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">_LocalException</tt> </tt>
+</div></div><a name="L1614"></a><tt class="py-lineno">1614</tt>  <tt class="py-line"> </tt>
+<a name="L1615"></a><tt class="py-lineno">1615</tt>  <tt class="py-line">        <tt id="link-1738" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1738', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1739" class="py-name"><a title="lxml.etree.iterparse.resolvers" class="py-name" href="#" onclick="return doclink('link-1739', 'resolvers', 'link-1586');">resolvers</a></tt><tt class="py-op">.</tt><tt id="link-1740" class="py-name"><a title="lxml.html.CheckboxValues.add
 lxml.html.Classes.add
-lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-1743', 'add', 'link-1590');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">MyResolver</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 id="link-1744" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1744', 'xml', 'link-361');">xml</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;!DOCTYPE doc SYSTEM "test"&gt;&lt;doc&gt;&amp;myentity;&lt;/doc&gt;'</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">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">_LocalException</tt><tt class="py-op">,</tt> <tt id="link-1745" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-1740', 'add', 'link-1587');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">MyResolver</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1616"></a><tt class="py-lineno">1616</tt>  <tt class="py-line"> </tt>
+<a name="L1617"></a><tt class="py-lineno">1617</tt>  <tt class="py-line">        <tt id="link-1741" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1741', 'xml', 'link-358');">xml</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;!DOCTYPE doc SYSTEM "test"&gt;&lt;doc&gt;&amp;myentity;&lt;/doc&gt;'</tt> </tt>
+<a name="L1618"></a><tt class="py-lineno">1618</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">_LocalException</tt><tt class="py-op">,</tt> <tt id="link-1742" 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-1745', 'parse', 'link-870');">parse</a></tt><tt class="py-op">,</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-1746" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1746', 'xml', 'link-361');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-1747" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1747', 'parser', 'link-861');">parser</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1606"></a><tt class="py-lineno">1606</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_entity_parse"></a><div id="ETreeOnlyTestCase.test_entity_parse-def"><a name="L1607"></a><tt class="py-lineno">1607</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_entity_parse-toggle" onclick="return toggle('ETreeOnlyTestCase.test_entity_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_entity_parse">test_entity_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_entity_parse-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_entity_parse-expanded"><a name="L1608"></a><tt class="py-lineno">1608</tt>  <tt class="py-line">        <tt id="link-1748" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1742', 'parse', 'link-867');">parse</a></tt><tt class="py-op">,</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-1743" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1743', 'xml', 'link-358');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-1744" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1744', 'parser', 'link-858');">parser</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1619"></a><tt class="py-lineno">1619</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_entity_parse"></a><div id="ETreeOnlyTestCase.test_entity_parse-def"><a name="L1620"></a><tt class="py-lineno">1620</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_entity_parse-toggle" onclick="return toggle('ETreeOnlyTestCase.test_entity_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_entity_parse">test_entity_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_entity_parse-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_entity_parse-expanded"><a name="L1621"></a><tt class="py-lineno">1621</tt>  <tt class="py-line">        <tt id="link-1745" 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-1748', 'parse', 'link-870');">parse</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
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1745', 'parse', 'link-867');">parse</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
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -5295,15 +5291,15 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1749', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1750" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1746', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1747" 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-1750', 'parse', 'link-870');">parse</a></tt> </tt>
-<a name="L1609"></a><tt class="py-lineno">1609</tt>  <tt class="py-line">        <tt id="link-1751" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1751', 'tostring', 'link-237');">tostring</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.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1747', 'parse', 'link-867');">parse</a></tt> </tt>
+<a name="L1622"></a><tt class="py-lineno">1622</tt>  <tt class="py-line">        <tt id="link-1748" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1748', 'tostring', 'link-237');">tostring</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
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -5311,10 +5307,10 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1752', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1753" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1753', 'tostring', 'link-237');">tostring</a></tt> </tt>
-<a name="L1610"></a><tt class="py-lineno">1610</tt>  <tt class="py-line">        <tt id="link-1754" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1754', 'parser', 'link-861');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1755" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1749', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1750" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1750', 'tostring', 'link-237');">tostring</a></tt> </tt>
+<a name="L1623"></a><tt class="py-lineno">1623</tt>  <tt class="py-line">        <tt id="link-1751" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1751', 'parser', 'link-858');">parser</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.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -5322,10 +5318,10 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1755', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1756" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1752', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1753" 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-1756', 'XMLParser', 'link-856');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">resolve_entities</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L1611"></a><tt class="py-lineno">1611</tt>  <tt class="py-line">        <tt id="link-1757" class="py-name" targets="Function lxml.etree.Entity()=lxml.etree-module.html#Entity"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1757', 'Entity', 'link-1757');">Entity</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1758" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1753', 'XMLParser', 'link-853');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">resolve_entities</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L1624"></a><tt class="py-lineno">1624</tt>  <tt class="py-line">        <tt id="link-1754" class="py-name" targets="Function lxml.etree.Entity()=lxml.etree-module.html#Entity"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1754', 'Entity', 'link-1754');">Entity</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1755" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -5333,50 +5329,50 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1758', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1759" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1759', 'Entity', 'link-1757');">Entity</a></tt> </tt>
-<a name="L1612"></a><tt class="py-lineno">1612</tt>  <tt class="py-line"> </tt>
-<a name="L1613"></a><tt class="py-lineno">1613</tt>  <tt class="py-line">        <tt id="link-1760" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1760', 'xml', 'link-361');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-1761" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1761', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE doc SYSTEM "test"&gt;&lt;doc&gt;&amp;myentity;&lt;/doc&gt;'</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">tree</tt> <tt class="py-op">=</tt> <tt id="link-1762" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1755', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1756" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1756', 'Entity', 'link-1754');">Entity</a></tt> </tt>
+<a name="L1625"></a><tt class="py-lineno">1625</tt>  <tt class="py-line"> </tt>
+<a name="L1626"></a><tt class="py-lineno">1626</tt>  <tt class="py-line">        <tt id="link-1757" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1757', 'xml', 'link-358');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-1758" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1758', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE doc SYSTEM "test"&gt;&lt;doc&gt;&amp;myentity;&lt;/doc&gt;'</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">tree</tt> <tt class="py-op">=</tt> <tt id="link-1759" 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-1762', 'parse', 'link-870');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-1763" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1763', 'xml', 'link-361');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-1764" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1764', 'parser', 'link-861');">parser</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1615"></a><tt class="py-lineno">1615</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-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1766" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-1766', 'getroot', 'link-805');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1616"></a><tt class="py-lineno">1616</tt>  <tt class="py-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-1767" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1767', 'root', 'link-247');">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-1768" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1759', 'parse', 'link-867');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-1760" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1760', 'xml', 'link-358');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-1761" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1761', 'parser', 'link-858');">parser</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1628"></a><tt class="py-lineno">1628</tt>  <tt class="py-line">        <tt id="link-1762" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1762', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1763" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-1763', 'getroot', 'link-802');">getroot</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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-247');">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-1768', 'tag', 'link-73');">tag</a></tt><tt class="py-op">,</tt> <tt id="link-1769" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1769', 'Entity', 'link-1757');">Entity</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1617"></a><tt class="py-lineno">1617</tt>  <tt class="py-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-1770" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1770', 'root', 'link-247');">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-1771" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1765', 'tag', 'link-73');">tag</a></tt><tt class="py-op">,</tt> <tt id="link-1766" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1766', 'Entity', 'link-1754');">Entity</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1767" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1767', 'root', 'link-247');">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-1768" 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-1771', 'text', 'link-205');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"&amp;myentity;"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1618"></a><tt class="py-lineno">1618</tt>  <tt class="py-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-1772" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1772', 'root', 'link-247');">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-1773" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1773', 'tail', 'link-981');">tail</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L1619"></a><tt class="py-lineno">1619</tt>  <tt class="py-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-1774" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1774', 'root', 'link-247');">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-1775" class="py-name"><a title="lxml.etree.DTD.name
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1768', 'text', 'link-205');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"&amp;myentity;"</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1769" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1769', 'root', 'link-247');">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-1770" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1770', 'tail', 'link-978');">tail</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</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-1771" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1771', 'root', 'link-247');">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-1772" class="py-name"><a title="lxml.etree.DTD.name
 lxml.etree._Entity.name
 lxml.html.InputMixin.name
-lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-1775', 'name', 'link-916');">name</a></tt><tt class="py-op">,</tt> <tt class="py-string">"myentity"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1620"></a><tt class="py-lineno">1620</tt>  <tt class="py-line"> </tt>
-<a name="L1621"></a><tt class="py-lineno">1621</tt>  <tt class="py-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-1776" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1776', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;&amp;myentity;&lt;/doc&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1622"></a><tt class="py-lineno">1622</tt>  <tt class="py-line">                          <tt id="link-1777" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1777', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-1778" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1778', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1623"></a><tt class="py-lineno">1623</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_entity_restructure"></a><div id="ETreeOnlyTestCase.test_entity_restructure-def"><a name="L1624"></a><tt class="py-lineno">1624</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_entity_restructure-toggle" onclick="return toggle('ETreeOnlyTestCase.test_entity_restructure');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_restructure">test_entity_restructure</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_entity_restructure-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_entity_restructure-expanded"><a name="L1625"></a><tt class="py-lineno">1625</tt>  <tt class="py-line">        <tt id="link-1779" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1779', 'xml', 'link-361');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-1780" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1780', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''&lt;!DOCTYPE root [ &lt;!ENTITY nbsp "&amp;#160;"&gt; ]&gt;</tt> </tt>
-<a name="L1626"></a><tt class="py-lineno">1626</tt>  <tt class="py-line"><tt class="py-string">            &lt;root&gt;</tt> </tt>
-<a name="L1627"></a><tt class="py-lineno">1627</tt>  <tt class="py-line"><tt class="py-string">              &lt;child1/&gt;</tt> </tt>
-<a name="L1628"></a><tt class="py-lineno">1628</tt>  <tt class="py-line"><tt class="py-string">              &lt;child2/&gt;</tt> </tt>
-<a name="L1629"></a><tt class="py-lineno">1629</tt>  <tt class="py-line"><tt class="py-string">              &lt;child3&gt;&amp;nbsp;&lt;/child3&gt;</tt> </tt>
-<a name="L1630"></a><tt class="py-lineno">1630</tt>  <tt class="py-line"><tt class="py-string">            &lt;/root&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1631"></a><tt class="py-lineno">1631</tt>  <tt class="py-line"> </tt>
-<a name="L1632"></a><tt class="py-lineno">1632</tt>  <tt class="py-line">        <tt id="link-1781" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1781', 'parser', 'link-861');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1782" class="py-name"><a title="lxml.etree
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-1772', 'name', 'link-913');">name</a></tt><tt class="py-op">,</tt> <tt class="py-string">"myentity"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1633"></a><tt class="py-lineno">1633</tt>  <tt class="py-line"> </tt>
+<a name="L1634"></a><tt class="py-lineno">1634</tt>  <tt class="py-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-1773" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1773', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;&amp;myentity;&lt;/doc&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1635"></a><tt class="py-lineno">1635</tt>  <tt class="py-line">                          <tt id="link-1774" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1774', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-1775" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1775', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1636"></a><tt class="py-lineno">1636</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_entity_restructure"></a><div id="ETreeOnlyTestCase.test_entity_restructure-def"><a name="L1637"></a><tt class="py-lineno">1637</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_entity_restructure-toggle" onclick="return toggle('ETreeOnlyTestCase.test_entity_restructure');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_restructure">test_entity_restructure</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_entity_restructure-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_entity_restructure-expanded"><a name="L1638"></a><tt class="py-lineno">1638</tt>  <tt class="py-line">        <tt id="link-1776" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1776', 'xml', 'link-358');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-1777" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1777', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''&lt;!DOCTYPE root [ &lt;!ENTITY nbsp "&amp;#160;"&gt; ]&gt;</tt> </tt>
+<a name="L1639"></a><tt class="py-lineno">1639</tt>  <tt class="py-line"><tt class="py-string">            &lt;root&gt;</tt> </tt>
+<a name="L1640"></a><tt class="py-lineno">1640</tt>  <tt class="py-line"><tt class="py-string">              &lt;child1/&gt;</tt> </tt>
+<a name="L1641"></a><tt class="py-lineno">1641</tt>  <tt class="py-line"><tt class="py-string">              &lt;child2/&gt;</tt> </tt>
+<a name="L1642"></a><tt class="py-lineno">1642</tt>  <tt class="py-line"><tt class="py-string">              &lt;child3&gt;&amp;nbsp;&lt;/child3&gt;</tt> </tt>
+<a name="L1643"></a><tt class="py-lineno">1643</tt>  <tt class="py-line"><tt class="py-string">            &lt;/root&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1644"></a><tt class="py-lineno">1644</tt>  <tt class="py-line"> </tt>
+<a name="L1645"></a><tt class="py-lineno">1645</tt>  <tt class="py-line">        <tt id="link-1778" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1778', 'parser', 'link-858');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1779" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -5384,10 +5380,10 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1782', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1783" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1779', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1780" 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-1783', 'XMLParser', 'link-856');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">resolve_entities</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L1633"></a><tt class="py-lineno">1633</tt>  <tt class="py-line">        <tt id="link-1784" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1784', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1785" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1780', 'XMLParser', 'link-853');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">resolve_entities</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L1646"></a><tt class="py-lineno">1646</tt>  <tt class="py-line">        <tt id="link-1781" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1781', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1782" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -5395,39 +5391,39 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1785', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1786" class="py-name"><a title="lxml.etree.fromstring
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1782', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1783" 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-1786', 'fromstring', 'link-850');">fromstring</a></tt><tt class="py-op">(</tt><tt id="link-1787" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1787', 'xml', 'link-361');">xml</a></tt><tt class="py-op">,</tt> <tt id="link-1788" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1788', 'parser', 'link-861');">parser</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1634"></a><tt class="py-lineno">1634</tt>  <tt class="py-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">el</tt><tt class="py-op">.</tt><tt id="link-1789" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-1783', 'fromstring', 'link-847');">fromstring</a></tt><tt class="py-op">(</tt><tt id="link-1784" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1784', 'xml', 'link-358');">xml</a></tt><tt class="py-op">,</tt> <tt id="link-1785" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1785', 'parser', 'link-858');">parser</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1647"></a><tt class="py-lineno">1647</tt>  <tt class="py-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">el</tt><tt class="py-op">.</tt><tt id="link-1786" 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-1789', 'tag', 'link-73');">tag</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-1790" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1790', 'root', 'link-247');">root</a></tt> <tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1635"></a><tt class="py-lineno">1635</tt>  <tt class="py-line">                          <tt class="py-op">[</tt><tt class="py-string">'child1'</tt><tt class="py-op">,</tt> <tt class="py-string">'child2'</tt><tt class="py-op">,</tt> <tt class="py-string">'child3'</tt><tt class="py-op">]</tt><tt class="py-op">)</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 id="link-1791" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1791', 'root', 'link-247');">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.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1792', 'root', 'link-247');">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="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 class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1793" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1786', 'tag', 'link-73');">tag</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-1787" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1787', 'root', 'link-247');">root</a></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 class="py-op">[</tt><tt class="py-string">'child1'</tt><tt class="py-op">,</tt> <tt class="py-string">'child2'</tt><tt class="py-op">,</tt> <tt class="py-string">'child3'</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>
+<a name="L1650"></a><tt class="py-lineno">1650</tt>  <tt class="py-line">        <tt id="link-1788" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1788', 'root', 'link-247');">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-1789" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1789', 'root', 'link-247');">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="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 class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1790" 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-1793', 'tag', 'link-73');">tag</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-1794" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1794', 'root', 'link-247');">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 class="py-op">[</tt><tt class="py-string">'child3'</tt><tt class="py-op">,</tt> <tt class="py-string">'child2'</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 class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1795" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1795', 'root', 'link-247');">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 class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1796" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1790', 'tag', 'link-73');">tag</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</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-247');">root</a></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-op">[</tt><tt class="py-string">'child3'</tt><tt class="py-op">,</tt> <tt class="py-string">'child2'</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 class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1792" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1792', 'root', 'link-247');">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 class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1793" 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-1796', 'text', 'link-205');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'&amp;nbsp;'</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-1797" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1797', 'root', 'link-247');">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 class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1798" class="py-name"><a title="lxml.etree.DTD.name
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1793', 'text', 'link-205');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'&amp;nbsp;'</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-1794" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1794', 'root', 'link-247');">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 class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1795" class="py-name"><a title="lxml.etree.DTD.name
 lxml.etree._Entity.name
 lxml.html.InputMixin.name
-lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-1798', 'name', 'link-916');">name</a></tt><tt class="py-op">,</tt> <tt class="py-string">'nbsp'</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="ETreeOnlyTestCase.test_entity_append"></a><div id="ETreeOnlyTestCase.test_entity_append-def"><a name="L1643"></a><tt class="py-lineno">1643</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_entity_append-toggle" onclick="return toggle('ETreeOnlyTestCase.test_entity_append');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_append">test_entity_append</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_entity_append-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_entity_append-expanded"><a name="L1644"></a><tt class="py-lineno">1644</tt>  <tt class="py-line">        <tt id="link-1799" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1799', 'Entity', 'link-1757');">Entity</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1800" class="py-name"><a title="lxml.etree
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-1795', 'name', 'link-913');">name</a></tt><tt class="py-op">,</tt> <tt class="py-string">'nbsp'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1655"></a><tt class="py-lineno">1655</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_entity_append"></a><div id="ETreeOnlyTestCase.test_entity_append-def"><a name="L1656"></a><tt class="py-lineno">1656</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_entity_append-toggle" onclick="return toggle('ETreeOnlyTestCase.test_entity_append');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_append">test_entity_append</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_entity_append-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_entity_append-expanded"><a name="L1657"></a><tt class="py-lineno">1657</tt>  <tt class="py-line">        <tt id="link-1796" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1796', 'Entity', 'link-1754');">Entity</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1797" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -5435,11 +5431,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1800', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1801" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1801', 'Entity', 'link-1757');">Entity</a></tt> </tt>
-<a name="L1645"></a><tt class="py-lineno">1645</tt>  <tt class="py-line">        <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-1797', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1798" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1798', 'Entity', 'link-1754');">Entity</a></tt> </tt>
+<a name="L1658"></a><tt class="py-lineno">1658</tt>  <tt class="py-line">        <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-1802', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1803" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1799', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1800" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -5447,12 +5443,12 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1803', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1804" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1800', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><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-1804', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L1646"></a><tt class="py-lineno">1646</tt>  <tt class="py-line">        <tt id="link-1805" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1805', 'tostring', 'link-237');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1806" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1801', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L1659"></a><tt class="py-lineno">1659</tt>  <tt class="py-line">        <tt id="link-1802" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1802', 'tostring', 'link-237');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1803" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -5460,39 +5456,39 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1806', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1807" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1807', 'tostring', 'link-237');">tostring</a></tt> </tt>
-<a name="L1647"></a><tt class="py-lineno">1647</tt>  <tt class="py-line"> </tt>
-<a name="L1648"></a><tt class="py-lineno">1648</tt>  <tt class="py-line">        <tt id="link-1808" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1808', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1809" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1803', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1804" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1804', 'tostring', 'link-237');">tostring</a></tt> </tt>
+<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 id="link-1805" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1805', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1806" 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-1809', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"root"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1649"></a><tt class="py-lineno">1649</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-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1811" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1811', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt> <tt id="link-1812" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1812', 'Entity', 'link-1757');">Entity</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="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-1813" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1813', 'root', 'link-247');">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-1814" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1806', 'Element', 'link-69');">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-1807" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1807', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1808" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1808', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt> <tt id="link-1809" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1809', 'Entity', 'link-1754');">Entity</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="L1663"></a><tt class="py-lineno">1663</tt>  <tt class="py-line"> </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 id="link-1810" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1810', 'root', 'link-247');">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-1811" 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-1814', 'tag', 'link-73');">tag</a></tt><tt class="py-op">,</tt> <tt id="link-1815" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1815', 'Entity', 'link-1757');">Entity</a></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 class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1816" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1816', 'root', 'link-247');">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-1817" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1811', 'tag', 'link-73');">tag</a></tt><tt class="py-op">,</tt> <tt id="link-1812" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1812', 'Entity', 'link-1754');">Entity</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1665"></a><tt class="py-lineno">1665</tt>  <tt class="py-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-1813" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1813', 'root', 'link-247');">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-1814" 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-1817', 'text', 'link-205');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"&amp;test;"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1653"></a><tt class="py-lineno">1653</tt>  <tt class="py-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.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1818', 'root', 'link-247');">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-1819" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1819', 'tail', 'link-981');">tail</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</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-1820" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1820', 'root', 'link-247');">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-1821" class="py-name"><a title="lxml.etree.DTD.name
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1814', 'text', 'link-205');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"&amp;test;"</tt><tt class="py-op">)</tt> </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-1815" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1815', 'root', 'link-247');">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-1816" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1816', 'tail', 'link-978');">tail</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</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 class="py-name">assertEqual</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-247');">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-1818" class="py-name"><a title="lxml.etree.DTD.name
 lxml.etree._Entity.name
 lxml.html.InputMixin.name
-lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-1821', 'name', 'link-916');">name</a></tt><tt class="py-op">,</tt> <tt class="py-string">"test"</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1822" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1822', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&amp;test;&lt;/root&gt;'</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 id="link-1823" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1823', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-1824" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1824', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1658"></a><tt class="py-lineno">1658</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_entity_append_parsed"></a><div id="ETreeOnlyTestCase.test_entity_append_parsed-def"><a name="L1659"></a><tt class="py-lineno">1659</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_entity_append_parsed-toggle" onclick="return toggle('ETreeOnlyTestCase.test_entity_append_parsed');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_append_parsed">test_entity_append_parsed</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_entity_append_parsed-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_entity_append_parsed-expanded"><a name="L1660"></a><tt class="py-lineno">1660</tt>  <tt class="py-line">        <tt id="link-1825" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1825', 'Entity', 'link-1757');">Entity</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1826" class="py-name"><a title="lxml.etree
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-1818', 'name', 'link-913');">name</a></tt><tt class="py-op">,</tt> <tt class="py-string">"test"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1668"></a><tt class="py-lineno">1668</tt>  <tt class="py-line"> </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-1819" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1819', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&amp;test;&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 id="link-1820" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1820', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-1821" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1821', 'root', 'link-247');">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_entity_append_parsed"></a><div id="ETreeOnlyTestCase.test_entity_append_parsed-def"><a name="L1672"></a><tt class="py-lineno">1672</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_entity_append_parsed-toggle" onclick="return toggle('ETreeOnlyTestCase.test_entity_append_parsed');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_append_parsed">test_entity_append_parsed</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_entity_append_parsed-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_entity_append_parsed-expanded"><a name="L1673"></a><tt class="py-lineno">1673</tt>  <tt class="py-line">        <tt id="link-1822" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1822', 'Entity', 'link-1754');">Entity</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1823" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -5500,11 +5496,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1826', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1827" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1827', 'Entity', 'link-1757');">Entity</a></tt> </tt>
-<a name="L1661"></a><tt class="py-lineno">1661</tt>  <tt class="py-line">        <tt id="link-1828" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1823', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1824" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1824', 'Entity', 'link-1754');">Entity</a></tt> </tt>
+<a name="L1674"></a><tt class="py-lineno">1674</tt>  <tt class="py-line">        <tt id="link-1825" 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-1828', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1829" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1825', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1826" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -5512,12 +5508,12 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1829', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1830" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1826', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><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-1830', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L1662"></a><tt class="py-lineno">1662</tt>  <tt class="py-line">        <tt id="link-1831" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1831', 'parser', 'link-861');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1832" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1827', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L1675"></a><tt class="py-lineno">1675</tt>  <tt class="py-line">        <tt id="link-1828" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1828', 'parser', 'link-858');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1829" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -5525,10 +5521,10 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1832', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1833" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1829', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1830" 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-1833', 'XMLParser', 'link-856');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">resolve_entities</tt><tt class="py-op">=</tt><tt class="py-name">False</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">entity</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1834" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1830', 'XMLParser', 'link-853');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">resolve_entities</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L1676"></a><tt class="py-lineno">1676</tt>  <tt class="py-line">        <tt class="py-name">entity</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.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -5536,47 +5532,47 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1834', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1835" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1831', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1832" 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-1835', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt class="py-string">'''&lt;!DOCTYPE data [</tt> </tt>
-<a name="L1664"></a><tt class="py-lineno">1664</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ENTITY a "a"&gt;</tt> </tt>
-<a name="L1665"></a><tt class="py-lineno">1665</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ENTITY b "&amp;a;"&gt;</tt> </tt>
-<a name="L1666"></a><tt class="py-lineno">1666</tt>  <tt class="py-line"><tt class="py-string">        ]&gt;</tt> </tt>
-<a name="L1667"></a><tt class="py-lineno">1667</tt>  <tt class="py-line"><tt class="py-string">        &lt;data&gt;&amp;b;&lt;/data&gt;</tt> </tt>
-<a name="L1668"></a><tt class="py-lineno">1668</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">,</tt> <tt id="link-1836" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1836', 'parser', 'link-861');">parser</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1669"></a><tt class="py-lineno">1669</tt>  <tt class="py-line"> </tt>
-<a name="L1670"></a><tt class="py-lineno">1670</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-1837" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1832', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt class="py-string">'''&lt;!DOCTYPE data [</tt> </tt>
+<a name="L1677"></a><tt class="py-lineno">1677</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ENTITY a "a"&gt;</tt> </tt>
+<a name="L1678"></a><tt class="py-lineno">1678</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ENTITY b "&amp;a;"&gt;</tt> </tt>
+<a name="L1679"></a><tt class="py-lineno">1679</tt>  <tt class="py-line"><tt class="py-string">        ]&gt;</tt> </tt>
+<a name="L1680"></a><tt class="py-lineno">1680</tt>  <tt class="py-line"><tt class="py-string">        &lt;data&gt;&amp;b;&lt;/data&gt;</tt> </tt>
+<a name="L1681"></a><tt class="py-lineno">1681</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">,</tt> <tt id="link-1833" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1833', 'parser', 'link-858');">parser</a></tt><tt class="py-op">)</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">el</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-1837', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'test'</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">el</tt><tt class="py-op">.</tt><tt id="link-1838" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1838', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">entity</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 class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1839" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1834', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'test'</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">el</tt><tt class="py-op">.</tt><tt id="link-1835" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1835', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">entity</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 class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1836" 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-1839', 'tag', 'link-73');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'test'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1673"></a><tt class="py-lineno">1673</tt>  <tt class="py-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">el</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-1840" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1836', 'tag', 'link-73');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'test'</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 class="py-name">el</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-1837" 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-1840', 'tag', 'link-73');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'data'</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">el</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 class="py-op">.</tt><tt id="link-1841" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1837', 'tag', 'link-73');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'data'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1687"></a><tt class="py-lineno">1687</tt>  <tt class="py-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">el</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 class="py-op">.</tt><tt id="link-1838" 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-1841', 'tag', 'link-73');">tag</a></tt><tt class="py-op">,</tt> <tt id="link-1842" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1842', 'Entity', 'link-1757');">Entity</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 class="py-name">el</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 class="py-op">.</tt><tt id="link-1843" class="py-name"><a title="lxml.etree.DTD.name
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1838', 'tag', 'link-73');">tag</a></tt><tt class="py-op">,</tt> <tt id="link-1839" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1839', 'Entity', 'link-1754');">Entity</a></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 class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">el</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 class="py-op">.</tt><tt id="link-1840" class="py-name"><a title="lxml.etree.DTD.name
 lxml.etree._Entity.name
 lxml.html.InputMixin.name
-lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-1843', 'name', 'link-916');">name</a></tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1676"></a><tt class="py-lineno">1676</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_entity_values"></a><div id="ETreeOnlyTestCase.test_entity_values-def"><a name="L1677"></a><tt class="py-lineno">1677</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_entity_values-toggle" onclick="return toggle('ETreeOnlyTestCase.test_entity_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_entity_values">test_entity_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_entity_values-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_entity_values-expanded"><a name="L1678"></a><tt class="py-lineno">1678</tt>  <tt class="py-line">        <tt id="link-1844" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1844', 'Entity', 'link-1757');">Entity</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1845" class="py-name"><a title="lxml.etree
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-1840', 'name', 'link-913');">name</a></tt><tt class="py-op">,</tt> <tt class="py-string">'b'</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="ETreeOnlyTestCase.test_entity_values"></a><div id="ETreeOnlyTestCase.test_entity_values-def"><a name="L1690"></a><tt class="py-lineno">1690</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_entity_values-toggle" onclick="return toggle('ETreeOnlyTestCase.test_entity_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_entity_values">test_entity_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_entity_values-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_entity_values-expanded"><a name="L1691"></a><tt class="py-lineno">1691</tt>  <tt class="py-line">        <tt id="link-1841" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1841', 'Entity', 'link-1754');">Entity</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1842" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -5584,30 +5580,30 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1845', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1846" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1846', 'Entity', 'link-1757');">Entity</a></tt> </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-1847" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1847', 'Entity', 'link-1757');">Entity</a></tt><tt class="py-op">(</tt><tt class="py-string">"test"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-1848" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1842', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1843" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1843', 'Entity', 'link-1754');">Entity</a></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 id="link-1844" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1844', 'Entity', 'link-1754');">Entity</a></tt><tt class="py-op">(</tt><tt class="py-string">"test"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-1845" 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-1848', 'text', 'link-205');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'&amp;test;'</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 class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1849" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1849', 'Entity', 'link-1757');">Entity</a></tt><tt class="py-op">(</tt><tt class="py-string">"#17683"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-1850" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1845', 'text', 'link-205');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'&amp;test;'</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 id="link-1846" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1846', 'Entity', 'link-1754');">Entity</a></tt><tt class="py-op">(</tt><tt class="py-string">"#17683"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-1847" 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-1850', 'text', 'link-205');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'&amp;#17683;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1681"></a><tt class="py-lineno">1681</tt>  <tt class="py-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-1851" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1851', 'Entity', 'link-1757');">Entity</a></tt><tt class="py-op">(</tt><tt class="py-string">"#x1768"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-1852" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1847', 'text', 'link-205');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'&amp;#17683;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1694"></a><tt class="py-lineno">1694</tt>  <tt class="py-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-1848" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1848', 'Entity', 'link-1754');">Entity</a></tt><tt class="py-op">(</tt><tt class="py-string">"#x1768"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-1849" 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-1852', 'text', 'link-205');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'&amp;#x1768;'</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-1853" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1853', 'Entity', 'link-1757');">Entity</a></tt><tt class="py-op">(</tt><tt class="py-string">"#x98AF"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-1854" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1849', 'text', 'link-205');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'&amp;#x1768;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1695"></a><tt class="py-lineno">1695</tt>  <tt class="py-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-1850" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1850', 'Entity', 'link-1754');">Entity</a></tt><tt class="py-op">(</tt><tt class="py-string">"#x98AF"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-1851" 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-1854', 'text', 'link-205');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'&amp;#x98AF;'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1683"></a><tt class="py-lineno">1683</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_entity_error"></a><div id="ETreeOnlyTestCase.test_entity_error-def"><a name="L1684"></a><tt class="py-lineno">1684</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_entity_error-toggle" onclick="return toggle('ETreeOnlyTestCase.test_entity_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_entity_error">test_entity_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_entity_error-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_entity_error-expanded"><a name="L1685"></a><tt class="py-lineno">1685</tt>  <tt class="py-line">        <tt id="link-1855" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1855', 'Entity', 'link-1757');">Entity</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1856" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1851', 'text', 'link-205');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'&amp;#x98AF;'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1696"></a><tt class="py-lineno">1696</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_entity_error"></a><div id="ETreeOnlyTestCase.test_entity_error-def"><a name="L1697"></a><tt class="py-lineno">1697</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_entity_error-toggle" onclick="return toggle('ETreeOnlyTestCase.test_entity_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_entity_error">test_entity_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_entity_error-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_entity_error-expanded"><a name="L1698"></a><tt class="py-lineno">1698</tt>  <tt class="py-line">        <tt id="link-1852" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1852', 'Entity', 'link-1754');">Entity</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1853" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -5615,15 +5611,15 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1856', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1857" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1857', 'Entity', 'link-1757');">Entity</a></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">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-1858" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1858', 'Entity', 'link-1757');">Entity</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a b c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1687"></a><tt class="py-lineno">1687</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-1859" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1859', 'Entity', 'link-1757');">Entity</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a,b'</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 class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-1860" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1860', 'Entity', 'link-1757');">Entity</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a\0b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1689"></a><tt class="py-lineno">1689</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-1861" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1861', 'Entity', 'link-1757');">Entity</a></tt><tt class="py-op">,</tt> <tt class="py-string">'#abc'</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">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-1862" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1862', 'Entity', 'link-1757');">Entity</a></tt><tt class="py-op">,</tt> <tt class="py-string">'#xxyz'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1691"></a><tt class="py-lineno">1691</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_cdata"></a><div id="ETreeOnlyTestCase.test_cdata-def"><a name="L1692"></a><tt class="py-lineno">1692</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_cdata-toggle" onclick="return toggle('ETreeOnlyTestCase.test_cdata');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata">test_cdata</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_cdata-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_cdata-expanded"><a name="L1693"></a><tt class="py-lineno">1693</tt>  <tt class="py-line">        <tt id="link-1863" class="py-name" targets="Class lxml.etree.CDATA=lxml.etree.CDATA-class.html"><a title="lxml.etree.CDATA" class="py-name" href="#" onclick="return doclink('link-1863', 'CDATA', 'link-1863');">CDATA</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1864" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1853', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1854" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1854', 'Entity', 'link-1754');">Entity</a></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">ValueError</tt><tt class="py-op">,</tt> <tt id="link-1855" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1855', 'Entity', 'link-1754');">Entity</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a b c'</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">ValueError</tt><tt class="py-op">,</tt> <tt id="link-1856" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1856', 'Entity', 'link-1754');">Entity</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a,b'</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">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-1857" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1857', 'Entity', 'link-1754');">Entity</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a\0b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1702"></a><tt class="py-lineno">1702</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-1858" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1858', 'Entity', 'link-1754');">Entity</a></tt><tt class="py-op">,</tt> <tt class="py-string">'#abc'</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 class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-1859" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1859', 'Entity', 'link-1754');">Entity</a></tt><tt class="py-op">,</tt> <tt class="py-string">'#xxyz'</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="ETreeOnlyTestCase.test_cdata"></a><div id="ETreeOnlyTestCase.test_cdata-def"><a name="L1705"></a><tt class="py-lineno">1705</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_cdata-toggle" onclick="return toggle('ETreeOnlyTestCase.test_cdata');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata">test_cdata</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_cdata-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_cdata-expanded"><a name="L1706"></a><tt class="py-lineno">1706</tt>  <tt class="py-line">        <tt id="link-1860" class="py-name" targets="Class lxml.etree.CDATA=lxml.etree.CDATA-class.html"><a title="lxml.etree.CDATA" class="py-name" href="#" onclick="return doclink('link-1860', 'CDATA', 'link-1860');">CDATA</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1861" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -5631,11 +5627,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1864', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1865" class="py-name"><a title="lxml.etree.CDATA" class="py-name" href="#" onclick="return doclink('link-1865', 'CDATA', 'link-1863');">CDATA</a></tt> </tt>
-<a name="L1694"></a><tt class="py-lineno">1694</tt>  <tt class="py-line">        <tt id="link-1866" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1861', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1862" class="py-name"><a title="lxml.etree.CDATA" class="py-name" href="#" onclick="return doclink('link-1862', 'CDATA', 'link-1860');">CDATA</a></tt> </tt>
+<a name="L1707"></a><tt class="py-lineno">1707</tt>  <tt class="py-line">        <tt id="link-1863" 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-1866', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1867" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1863', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1864" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -5643,12 +5639,12 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1867', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1868" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1864', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1865" 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-1868', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L1695"></a><tt class="py-lineno">1695</tt>  <tt class="py-line">        <tt id="link-1869" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1869', 'tostring', 'link-237');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1870" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1865', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L1708"></a><tt class="py-lineno">1708</tt>  <tt class="py-line">        <tt id="link-1866" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1866', 'tostring', 'link-237');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1867" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -5656,31 +5652,31 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1870', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1871" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1871', 'tostring', 'link-237');">tostring</a></tt> </tt>
-<a name="L1696"></a><tt class="py-lineno">1696</tt>  <tt class="py-line"> </tt>
-<a name="L1697"></a><tt class="py-lineno">1697</tt>  <tt class="py-line">        <tt id="link-1872" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1872', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1873" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1867', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1868" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1868', 'tostring', 'link-237');">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-1869" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1869', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1870" 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-1873', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"root"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1698"></a><tt class="py-lineno">1698</tt>  <tt class="py-line">        <tt id="link-1874" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1874', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1875" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1870', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"root"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1711"></a><tt class="py-lineno">1711</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-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1872" 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-1875', 'text', 'link-205');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-1876" class="py-name"><a title="lxml.etree.CDATA" class="py-name" href="#" onclick="return doclink('link-1876', 'CDATA', 'link-1863');">CDATA</a></tt><tt class="py-op">(</tt><tt class="py-string">'test'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1699"></a><tt class="py-lineno">1699</tt>  <tt class="py-line"> </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">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'test'</tt><tt class="py-op">,</tt> </tt>
-<a name="L1701"></a><tt class="py-lineno">1701</tt>  <tt class="py-line">                          <tt id="link-1877" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1877', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1878" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1872', 'text', 'link-205');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-1873" class="py-name"><a title="lxml.etree.CDATA" class="py-name" href="#" onclick="return doclink('link-1873', 'CDATA', 'link-1860');">CDATA</a></tt><tt class="py-op">(</tt><tt class="py-string">'test'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1712"></a><tt class="py-lineno">1712</tt>  <tt class="py-line"> </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-string">'test'</tt><tt class="py-op">,</tt> </tt>
+<a name="L1714"></a><tt class="py-lineno">1714</tt>  <tt class="py-line">                          <tt id="link-1874" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1874', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1875" 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-1878', 'text', 'link-205');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1702"></a><tt class="py-lineno">1702</tt>  <tt class="py-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-1879" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1879', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;![CDATA[test]]&gt;&lt;/root&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 id="link-1880" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1880', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-1881" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1881', 'root', 'link-247');">root</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="ETreeOnlyTestCase.test_cdata_tail"></a><div id="ETreeOnlyTestCase.test_cdata_tail-def"><a name="L1705"></a><tt class="py-lineno">1705</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_cdata_tail-toggle" onclick="return toggle('ETreeOnlyTestCase.test_cdata_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_cdata_tail">test_cdata_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_cdata_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_cdata_tail-expanded"><a name="L1706"></a><tt class="py-lineno">1706</tt>  <tt class="py-line">        <tt id="link-1882" class="py-name"><a title="lxml.etree.CDATA" class="py-name" href="#" onclick="return doclink('link-1882', 'CDATA', 'link-1863');">CDATA</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1883" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1875', 'text', 'link-205');">text</a></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 id="link-1876" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1876', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;![CDATA[test]]&gt;&lt;/root&gt;'</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 id="link-1877" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1877', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-1878" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1878', 'root', 'link-247');">root</a></tt><tt class="py-op">)</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="ETreeOnlyTestCase.test_cdata_tail"></a><div id="ETreeOnlyTestCase.test_cdata_tail-def"><a name="L1718"></a><tt class="py-lineno">1718</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_cdata_tail-toggle" onclick="return toggle('ETreeOnlyTestCase.test_cdata_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_cdata_tail">test_cdata_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_cdata_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_cdata_tail-expanded"><a name="L1719"></a><tt class="py-lineno">1719</tt>  <tt class="py-line">        <tt id="link-1879" class="py-name"><a title="lxml.etree.CDATA" class="py-name" href="#" onclick="return doclink('link-1879', 'CDATA', 'link-1860');">CDATA</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1880" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -5688,11 +5684,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1883', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1884" class="py-name"><a title="lxml.etree.CDATA" class="py-name" href="#" onclick="return doclink('link-1884', 'CDATA', 'link-1863');">CDATA</a></tt> </tt>
-<a name="L1707"></a><tt class="py-lineno">1707</tt>  <tt class="py-line">        <tt id="link-1885" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1880', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1881" class="py-name"><a title="lxml.etree.CDATA" class="py-name" href="#" onclick="return doclink('link-1881', 'CDATA', 'link-1860');">CDATA</a></tt> </tt>
+<a name="L1720"></a><tt class="py-lineno">1720</tt>  <tt class="py-line">        <tt id="link-1882" 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-1885', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1886" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1882', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1883" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -5700,11 +5696,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1886', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1887" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1883', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1884" 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-1887', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L1708"></a><tt class="py-lineno">1708</tt>  <tt class="py-line">        <tt id="link-1888" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1888', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1889" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1884', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L1721"></a><tt class="py-lineno">1721</tt>  <tt class="py-line">        <tt id="link-1885" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1885', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1886" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -5712,9 +5708,9 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1889', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1890" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1890', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
-<a name="L1709"></a><tt class="py-lineno">1709</tt>  <tt class="py-line">        <tt id="link-1891" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1891', 'tostring', 'link-237');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1892" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1886', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1887" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1887', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
+<a name="L1722"></a><tt class="py-lineno">1722</tt>  <tt class="py-line">        <tt id="link-1888" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1888', 'tostring', 'link-237');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1889" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -5722,38 +5718,38 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1892', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1893" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1893', 'tostring', 'link-237');">tostring</a></tt> </tt>
-<a name="L1710"></a><tt class="py-lineno">1710</tt>  <tt class="py-line"> </tt>
-<a name="L1711"></a><tt class="py-lineno">1711</tt>  <tt class="py-line">        <tt id="link-1894" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1894', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1895" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1889', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1890" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1890', 'tostring', 'link-237');">tostring</a></tt> </tt>
+<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 id="link-1891" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1891', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1892" 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-1895', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"root"</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">child</tt> <tt class="py-op">=</tt> <tt id="link-1896" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1896', 'SubElement', 'link-112');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-1897" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1897', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'child'</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">child</tt><tt class="py-op">.</tt><tt id="link-1898" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1898', 'tail', 'link-981');">tail</a></tt> <tt class="py-op">=</tt> <tt id="link-1899" class="py-name"><a title="lxml.etree.CDATA" class="py-name" href="#" onclick="return doclink('link-1899', 'CDATA', 'link-1863');">CDATA</a></tt><tt class="py-op">(</tt><tt class="py-string">'test'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1714"></a><tt class="py-lineno">1714</tt>  <tt class="py-line"> </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-string">'test'</tt><tt class="py-op">,</tt> <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-1900" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1900', 'tail', 'link-981');">tail</a></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 id="link-1901" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1901', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;child/&gt;&lt;![CDATA[test]]&gt;&lt;/root&gt;'</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 id="link-1902" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1902', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-1903" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1903', 'root', 'link-247');">root</a></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>
-<a name="L1719"></a><tt class="py-lineno">1719</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-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1905" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1892', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"root"</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">child</tt> <tt class="py-op">=</tt> <tt id="link-1893" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1893', 'SubElement', 'link-112');">SubElement</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-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'child'</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">child</tt><tt class="py-op">.</tt><tt id="link-1895" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1895', 'tail', 'link-978');">tail</a></tt> <tt class="py-op">=</tt> <tt id="link-1896" class="py-name"><a title="lxml.etree.CDATA" class="py-name" href="#" onclick="return doclink('link-1896', 'CDATA', 'link-1860');">CDATA</a></tt><tt class="py-op">(</tt><tt class="py-string">'test'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1727"></a><tt class="py-lineno">1727</tt>  <tt class="py-line"> </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 class="py-string">'test'</tt><tt class="py-op">,</tt> <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-1897" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1897', 'tail', 'link-978');">tail</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1729"></a><tt class="py-lineno">1729</tt>  <tt class="py-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-1898" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1898', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;child/&gt;&lt;![CDATA[test]]&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1730"></a><tt class="py-lineno">1730</tt>  <tt class="py-line">                         <tt id="link-1899" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1899', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-1900" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1900', 'root', 'link-247');">root</a></tt><tt class="py-op">)</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 id="link-1901" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1901', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1902" 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-1905', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"root"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1720"></a><tt class="py-lineno">1720</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-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1907" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1907', 'tail', 'link-981');">tail</a></tt> <tt class="py-op">=</tt> <tt id="link-1908" class="py-name"><a title="lxml.etree.CDATA" class="py-name" href="#" onclick="return doclink('link-1908', 'CDATA', 'link-1863');">CDATA</a></tt><tt class="py-op">(</tt><tt class="py-string">'test'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1721"></a><tt class="py-lineno">1721</tt>  <tt class="py-line"> </tt>
-<a name="L1722"></a><tt class="py-lineno">1722</tt>  <tt class="py-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">'test'</tt><tt class="py-op">,</tt> <tt id="link-1909" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1909', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1910" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1910', 'tail', 'link-981');">tail</a></tt><tt class="py-op">)</tt> </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">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1911" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1911', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root/&gt;&lt;![CDATA[test]]&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1724"></a><tt class="py-lineno">1724</tt>  <tt class="py-line">                         <tt id="link-1912" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1912', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-1913" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1913', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1725"></a><tt class="py-lineno">1725</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_cdata_type"></a><div id="ETreeOnlyTestCase.test_cdata_type-def"><a name="L1726"></a><tt class="py-lineno">1726</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_cdata_type-toggle" onclick="return toggle('ETreeOnlyTestCase.test_cdata_type');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata_type">test_cdata_type</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_cdata_type-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_cdata_type-expanded"><a name="L1727"></a><tt class="py-lineno">1727</tt>  <tt class="py-line">        <tt id="link-1914" class="py-name"><a title="lxml.etree.CDATA" class="py-name" href="#" onclick="return doclink('link-1914', 'CDATA', 'link-1863');">CDATA</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1915" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1902', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"root"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1733"></a><tt class="py-lineno">1733</tt>  <tt class="py-line">        <tt id="link-1903" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1903', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1904" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1904', 'tail', 'link-978');">tail</a></tt> <tt class="py-op">=</tt> <tt id="link-1905" class="py-name"><a title="lxml.etree.CDATA" class="py-name" href="#" onclick="return doclink('link-1905', 'CDATA', 'link-1860');">CDATA</a></tt><tt class="py-op">(</tt><tt class="py-string">'test'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1734"></a><tt class="py-lineno">1734</tt>  <tt class="py-line"> </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">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'test'</tt><tt class="py-op">,</tt> <tt id="link-1906" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1906', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1907" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1907', 'tail', 'link-978');">tail</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1736"></a><tt class="py-lineno">1736</tt>  <tt class="py-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-1908" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1908', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root/&gt;&lt;![CDATA[test]]&gt;'</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 id="link-1909" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1909', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-1910" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1910', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1738"></a><tt class="py-lineno">1738</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_cdata_type"></a><div id="ETreeOnlyTestCase.test_cdata_type-def"><a name="L1739"></a><tt class="py-lineno">1739</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_cdata_type-toggle" onclick="return toggle('ETreeOnlyTestCase.test_cdata_type');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata_type">test_cdata_type</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_cdata_type-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_cdata_type-expanded"><a name="L1740"></a><tt class="py-lineno">1740</tt>  <tt class="py-line">        <tt id="link-1911" class="py-name"><a title="lxml.etree.CDATA" class="py-name" href="#" onclick="return doclink('link-1911', 'CDATA', 'link-1860');">CDATA</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1912" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -5761,11 +5757,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1915', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1916" class="py-name"><a title="lxml.etree.CDATA" class="py-name" href="#" onclick="return doclink('link-1916', 'CDATA', 'link-1863');">CDATA</a></tt> </tt>
-<a name="L1728"></a><tt class="py-lineno">1728</tt>  <tt class="py-line">        <tt id="link-1917" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1912', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1913" class="py-name"><a title="lxml.etree.CDATA" class="py-name" href="#" onclick="return doclink('link-1913', 'CDATA', 'link-1860');">CDATA</a></tt> </tt>
+<a name="L1741"></a><tt class="py-lineno">1741</tt>  <tt class="py-line">        <tt id="link-1914" 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-1917', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1918" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1914', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1915" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -5773,41 +5769,41 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1918', 'etree', 'link-3');">etree</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-1915', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1916" 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-69');">Element</a></tt> </tt>
-<a name="L1729"></a><tt class="py-lineno">1729</tt>  <tt class="py-line">        <tt id="link-1920" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1920', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1921" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1916', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L1742"></a><tt class="py-lineno">1742</tt>  <tt class="py-line">        <tt id="link-1917" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1917', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1918" 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-1921', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"root"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1730"></a><tt class="py-lineno">1730</tt>  <tt class="py-line"> </tt>
-<a name="L1731"></a><tt class="py-lineno">1731</tt>  <tt class="py-line">        <tt id="link-1922" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1922', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1923" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1918', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"root"</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 id="link-1919" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1919', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1920" 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-1923', 'text', 'link-205');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-1924" class="py-name"><a title="lxml.etree.CDATA" class="py-name" href="#" onclick="return doclink('link-1924', 'CDATA', 'link-1863');">CDATA</a></tt><tt class="py-op">(</tt><tt class="py-string">"test"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1732"></a><tt class="py-lineno">1732</tt>  <tt class="py-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">'test'</tt><tt class="py-op">,</tt> <tt id="link-1925" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1925', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1926" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1920', 'text', 'link-205');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-1921" class="py-name"><a title="lxml.etree.CDATA" class="py-name" href="#" onclick="return doclink('link-1921', 'CDATA', 'link-1860');">CDATA</a></tt><tt class="py-op">(</tt><tt class="py-string">"test"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1745"></a><tt class="py-lineno">1745</tt>  <tt class="py-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">'test'</tt><tt class="py-op">,</tt> <tt id="link-1922" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1922', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1923" 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-1926', 'text', 'link-205');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1733"></a><tt class="py-lineno">1733</tt>  <tt class="py-line"> </tt>
-<a name="L1734"></a><tt class="py-lineno">1734</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-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1928" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1923', 'text', 'link-205');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1746"></a><tt class="py-lineno">1746</tt>  <tt class="py-line"> </tt>
+<a name="L1747"></a><tt class="py-lineno">1747</tt>  <tt class="py-line">        <tt id="link-1924" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1924', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1925" 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-1928', 'text', 'link-205');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-1929" class="py-name"><a title="lxml.etree.CDATA" class="py-name" href="#" onclick="return doclink('link-1929', 'CDATA', 'link-1863');">CDATA</a></tt><tt class="py-op">(</tt><tt id="link-1930" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1930', '_str', 'link-17');">_str</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="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">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'test'</tt><tt class="py-op">,</tt> <tt id="link-1931" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1931', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1932" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1925', 'text', 'link-205');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-1926" class="py-name"><a title="lxml.etree.CDATA" class="py-name" href="#" onclick="return doclink('link-1926', 'CDATA', 'link-1860');">CDATA</a></tt><tt class="py-op">(</tt><tt id="link-1927" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1927', '_str', 'link-17');">_str</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="L1748"></a><tt class="py-lineno">1748</tt>  <tt class="py-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">'test'</tt><tt class="py-op">,</tt> <tt id="link-1928" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1928', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1929" 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-1932', 'text', 'link-205');">text</a></tt><tt class="py-op">)</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">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 id="link-1933" class="py-name"><a title="lxml.etree.CDATA" class="py-name" href="#" onclick="return doclink('link-1933', 'CDATA', 'link-1863');">CDATA</a></tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1738"></a><tt class="py-lineno">1738</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_cdata_errors"></a><div id="ETreeOnlyTestCase.test_cdata_errors-def"><a name="L1739"></a><tt class="py-lineno">1739</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_cdata_errors-toggle" onclick="return toggle('ETreeOnlyTestCase.test_cdata_errors');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata_errors">test_cdata_errors</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_cdata_errors-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_cdata_errors-expanded"><a name="L1740"></a><tt class="py-lineno">1740</tt>  <tt class="py-line">        <tt id="link-1934" class="py-name"><a title="lxml.etree.CDATA" class="py-name" href="#" onclick="return doclink('link-1934', 'CDATA', 'link-1863');">CDATA</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1935" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1929', 'text', 'link-205');">text</a></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">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 id="link-1930" class="py-name"><a title="lxml.etree.CDATA" class="py-name" href="#" onclick="return doclink('link-1930', 'CDATA', 'link-1860');">CDATA</a></tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1751"></a><tt class="py-lineno">1751</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_cdata_errors"></a><div id="ETreeOnlyTestCase.test_cdata_errors-def"><a name="L1752"></a><tt class="py-lineno">1752</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_cdata_errors-toggle" onclick="return toggle('ETreeOnlyTestCase.test_cdata_errors');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata_errors">test_cdata_errors</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_cdata_errors-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_cdata_errors-expanded"><a name="L1753"></a><tt class="py-lineno">1753</tt>  <tt class="py-line">        <tt id="link-1931" class="py-name"><a title="lxml.etree.CDATA" class="py-name" href="#" onclick="return doclink('link-1931', 'CDATA', 'link-1860');">CDATA</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1932" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -5815,11 +5811,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1935', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1936" class="py-name"><a title="lxml.etree.CDATA" class="py-name" href="#" onclick="return doclink('link-1936', 'CDATA', 'link-1863');">CDATA</a></tt> </tt>
-<a name="L1741"></a><tt class="py-lineno">1741</tt>  <tt class="py-line">        <tt id="link-1937" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1932', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1933" class="py-name"><a title="lxml.etree.CDATA" class="py-name" href="#" onclick="return doclink('link-1933', 'CDATA', 'link-1860');">CDATA</a></tt> </tt>
+<a name="L1754"></a><tt class="py-lineno">1754</tt>  <tt class="py-line">        <tt id="link-1934" 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-1937', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1938" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1934', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1935" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -5827,31 +5823,31 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1938', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1939" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1935', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1936" 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-1939', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L1742"></a><tt class="py-lineno">1742</tt>  <tt class="py-line"> </tt>
-<a name="L1743"></a><tt class="py-lineno">1743</tt>  <tt class="py-line">        <tt id="link-1940" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1940', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1941" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1936', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L1755"></a><tt class="py-lineno">1755</tt>  <tt class="py-line"> </tt>
+<a name="L1756"></a><tt class="py-lineno">1756</tt>  <tt class="py-line">        <tt id="link-1937" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1937', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1938" 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-1941', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"root"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1744"></a><tt class="py-lineno">1744</tt>  <tt class="py-line">        <tt id="link-1942" class="py-name" targets="Function lxml.tests.selftest2.cdata()=lxml.tests.selftest2-module.html#cdata"><a title="lxml.tests.selftest2.cdata" class="py-name" href="#" onclick="return doclink('link-1942', 'cdata', 'link-1942');">cdata</a></tt> <tt class="py-op">=</tt> <tt id="link-1943" class="py-name"><a title="lxml.etree.CDATA" class="py-name" href="#" onclick="return doclink('link-1943', 'CDATA', 'link-1863');">CDATA</a></tt><tt class="py-op">(</tt><tt class="py-string">'test'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1745"></a><tt class="py-lineno">1745</tt>  <tt class="py-line"> </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">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> </tt>
-<a name="L1747"></a><tt class="py-lineno">1747</tt>  <tt class="py-line">                          <tt id="link-1944" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1944', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1945" class="py-name"><a title="lxml.etree._Element.set
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1938', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"root"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1757"></a><tt class="py-lineno">1757</tt>  <tt class="py-line">        <tt id="link-1939" class="py-name" targets="Function lxml.tests.selftest2.cdata()=lxml.tests.selftest2-module.html#cdata"><a title="lxml.tests.selftest2.cdata" class="py-name" href="#" onclick="return doclink('link-1939', 'cdata', 'link-1939');">cdata</a></tt> <tt class="py-op">=</tt> <tt id="link-1940" class="py-name"><a title="lxml.etree.CDATA" class="py-name" href="#" onclick="return doclink('link-1940', 'CDATA', 'link-1860');">CDATA</a></tt><tt class="py-op">(</tt><tt class="py-string">'test'</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-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>
+<a name="L1760"></a><tt class="py-lineno">1760</tt>  <tt class="py-line">                          <tt id="link-1941" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1941', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1942" class="py-name"><a title="lxml.etree._Element.set
 lxml.etree._XSLTProcessingInstruction.set
 lxml.html.HtmlElement.set
-lxml.html.HtmlMixin.set" class="py-name" href="#" onclick="return doclink('link-1945', 'set', 'link-268');">set</a></tt><tt class="py-op">,</tt> <tt class="py-string">'attr'</tt><tt class="py-op">,</tt> <tt id="link-1946" class="py-name"><a title="lxml.tests.selftest2.cdata" class="py-name" href="#" onclick="return doclink('link-1946', 'cdata', 'link-1942');">cdata</a></tt><tt class="py-op">)</tt> </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 class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</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">operator</tt><tt class="py-op">.</tt><tt class="py-name">setitem</tt><tt class="py-op">,</tt> <tt id="link-1947" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1947', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1948" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.html.HtmlMixin.set" class="py-name" href="#" onclick="return doclink('link-1942', 'set', 'link-268');">set</a></tt><tt class="py-op">,</tt> <tt class="py-string">'attr'</tt><tt class="py-op">,</tt> <tt id="link-1943" class="py-name"><a title="lxml.tests.selftest2.cdata" class="py-name" href="#" onclick="return doclink('link-1943', 'cdata', 'link-1939');">cdata</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1761"></a><tt class="py-lineno">1761</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>
+<a name="L1762"></a><tt class="py-lineno">1762</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 id="link-1944" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1944', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1945" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1948', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">,</tt> <tt class="py-string">'attr'</tt><tt class="py-op">,</tt> <tt id="link-1949" class="py-name"><a title="lxml.tests.selftest2.cdata" class="py-name" href="#" onclick="return doclink('link-1949', 'cdata', 'link-1942');">cdata</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1750"></a><tt class="py-lineno">1750</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_cdata_parser"></a><div id="ETreeOnlyTestCase.test_cdata_parser-def"><a name="L1751"></a><tt class="py-lineno">1751</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_cdata_parser-toggle" onclick="return toggle('ETreeOnlyTestCase.test_cdata_parser');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata_parser">test_cdata_parser</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_cdata_parser-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_cdata_parser-expanded"><a name="L1752"></a><tt class="py-lineno">1752</tt>  <tt class="py-line">        <tt id="link-1950" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1950', 'tostring', 'link-237');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1951" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1945', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">,</tt> <tt class="py-string">'attr'</tt><tt class="py-op">,</tt> <tt id="link-1946" class="py-name"><a title="lxml.tests.selftest2.cdata" class="py-name" href="#" onclick="return doclink('link-1946', 'cdata', 'link-1939');">cdata</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1763"></a><tt class="py-lineno">1763</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_cdata_parser"></a><div id="ETreeOnlyTestCase.test_cdata_parser-def"><a name="L1764"></a><tt class="py-lineno">1764</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_cdata_parser-toggle" onclick="return toggle('ETreeOnlyTestCase.test_cdata_parser');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata_parser">test_cdata_parser</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_cdata_parser-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_cdata_parser-expanded"><a name="L1765"></a><tt class="py-lineno">1765</tt>  <tt class="py-line">        <tt id="link-1947" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1947', 'tostring', 'link-237');">tostring</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
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -5859,10 +5855,10 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1951', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1952" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1952', 'tostring', 'link-237');">tostring</a></tt> </tt>
-<a name="L1753"></a><tt class="py-lineno">1753</tt>  <tt class="py-line">        <tt id="link-1953" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1953', 'parser', 'link-861');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1954" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1948', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1949" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1949', 'tostring', 'link-237');">tostring</a></tt> </tt>
+<a name="L1766"></a><tt class="py-lineno">1766</tt>  <tt class="py-line">        <tt id="link-1950" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1950', 'parser', 'link-858');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1951" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -5870,10 +5866,10 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1954', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1955" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1951', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1952" 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-1955', 'XMLParser', 'link-856');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">strip_cdata</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L1754"></a><tt class="py-lineno">1754</tt>  <tt class="py-line">        <tt id="link-1956" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1956', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1957" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1952', 'XMLParser', 'link-853');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">strip_cdata</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L1767"></a><tt class="py-lineno">1767</tt>  <tt class="py-line">        <tt id="link-1953" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1953', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1954" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -5881,24 +5877,24 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1957', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1958" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1954', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1955" 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-1958', 'XML', 'link-234');">XML</a></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-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;![CDATA[test]]&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-1960" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1960', 'parser', 'link-861');">parser</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1755"></a><tt class="py-lineno">1755</tt>  <tt class="py-line"> </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-string">'test'</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-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1962" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1955', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1956" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1956', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;![CDATA[test]]&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-1957" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1957', 'parser', 'link-858');">parser</a></tt><tt class="py-op">)</tt> </tt>
+<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 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">'test'</tt><tt class="py-op">,</tt> <tt id="link-1958" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1958', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1959" 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-1962', 'text', 'link-205');">text</a></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 id="link-1963" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1963', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;![CDATA[test]]&gt;&lt;/root&gt;'</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 id="link-1964" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1964', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-1965" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1965', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1759"></a><tt class="py-lineno">1759</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_cdata_xpath"></a><div id="ETreeOnlyTestCase.test_cdata_xpath-def"><a name="L1760"></a><tt class="py-lineno">1760</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_cdata_xpath-toggle" onclick="return toggle('ETreeOnlyTestCase.test_cdata_xpath');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata_xpath">test_cdata_xpath</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_cdata_xpath-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_cdata_xpath-expanded"><a name="L1761"></a><tt class="py-lineno">1761</tt>  <tt class="py-line">        <tt id="link-1966" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1966', 'tostring', 'link-237');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1967" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1959', 'text', 'link-205');">text</a></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 id="link-1960" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1960', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;![CDATA[test]]&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1771"></a><tt class="py-lineno">1771</tt>  <tt class="py-line">                          <tt id="link-1961" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1961', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-1962" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1962', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1772"></a><tt class="py-lineno">1772</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_cdata_xpath"></a><div id="ETreeOnlyTestCase.test_cdata_xpath-def"><a name="L1773"></a><tt class="py-lineno">1773</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_cdata_xpath-toggle" onclick="return toggle('ETreeOnlyTestCase.test_cdata_xpath');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata_xpath">test_cdata_xpath</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_cdata_xpath-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_cdata_xpath-expanded"><a name="L1774"></a><tt class="py-lineno">1774</tt>  <tt class="py-line">        <tt id="link-1963" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1963', 'tostring', 'link-237');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1964" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -5906,10 +5902,10 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1967', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><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-237');">tostring</a></tt> </tt>
-<a name="L1762"></a><tt class="py-lineno">1762</tt>  <tt class="py-line">        <tt id="link-1969" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1969', 'parser', 'link-861');">parser</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
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1964', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1965" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1965', 'tostring', 'link-237');">tostring</a></tt> </tt>
+<a name="L1775"></a><tt class="py-lineno">1775</tt>  <tt class="py-line">        <tt id="link-1966" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1966', 'parser', 'link-858');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1967" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -5917,10 +5913,10 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1970', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1971" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1967', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1968" 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-1971', 'XMLParser', 'link-856');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">strip_cdata</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L1763"></a><tt class="py-lineno">1763</tt>  <tt class="py-line">        <tt id="link-1972" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1972', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1973" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1968', 'XMLParser', 'link-853');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">strip_cdata</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L1776"></a><tt class="py-lineno">1776</tt>  <tt class="py-line">        <tt id="link-1969" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1969', 'root', 'link-247');">root</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
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -5928,25 +5924,25 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1973', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1974" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1970', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1971" 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-1974', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1975" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1975', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;![CDATA[test]]&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-1976" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1976', 'parser', 'link-861');">parser</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1977" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1977', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;![CDATA[test]]&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1765"></a><tt class="py-lineno">1765</tt>  <tt class="py-line">                          <tt id="link-1978" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1978', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-1979" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1979', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1766"></a><tt class="py-lineno">1766</tt>  <tt class="py-line"> </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 class="py-op">[</tt><tt class="py-string">'test'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt id="link-1980" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1980', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1981" 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.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1971', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1972" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1972', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;![CDATA[test]]&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-1973" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1973', 'parser', 'link-858');">parser</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1974" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1974', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;![CDATA[test]]&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1778"></a><tt class="py-lineno">1778</tt>  <tt class="py-line">                          <tt id="link-1975" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1975', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-1976" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1976', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1779"></a><tt class="py-lineno">1779</tt>  <tt class="py-line"> </tt>
+<a name="L1780"></a><tt class="py-lineno">1780</tt>  <tt class="py-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">'test'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt id="link-1977" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1977', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1978" 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-1981', 'xpath', 'link-1981');">xpath</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="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 class="py-comment"># TypeError in etree, AssertionError in ElementTree;</tt> </tt>
-<a name="ETreeOnlyTestCase.test_setitem_assert"></a><div id="ETreeOnlyTestCase.test_setitem_assert-def"><a name="L1770"></a><tt class="py-lineno">1770</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_setitem_assert-toggle" onclick="return toggle('ETreeOnlyTestCase.test_setitem_assert');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setitem_assert">test_setitem_assert</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_setitem_assert-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_setitem_assert-expanded"><a name="L1771"></a><tt class="py-lineno">1771</tt>  <tt class="py-line">        <tt id="link-1982" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_xpathevaluator.xpath" class="py-name" href="#" onclick="return doclink('link-1978', 'xpath', 'link-1978');">xpath</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="L1781"></a><tt class="py-lineno">1781</tt>  <tt class="py-line"> </tt>
+<a name="L1782"></a><tt class="py-lineno">1782</tt>  <tt class="py-line">    <tt class="py-comment"># TypeError in etree, AssertionError in ElementTree;</tt> </tt>
+<a name="ETreeOnlyTestCase.test_setitem_assert"></a><div id="ETreeOnlyTestCase.test_setitem_assert-def"><a name="L1783"></a><tt class="py-lineno">1783</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_setitem_assert-toggle" onclick="return toggle('ETreeOnlyTestCase.test_setitem_assert');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setitem_assert">test_setitem_assert</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_setitem_assert-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_setitem_assert-expanded"><a name="L1784"></a><tt class="py-lineno">1784</tt>  <tt class="py-line">        <tt id="link-1979" 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-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1983" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1979', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1980" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -5954,11 +5950,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1983', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1984" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1980', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1981" 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-1984', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L1772"></a><tt class="py-lineno">1772</tt>  <tt class="py-line">        <tt id="link-1985" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1985', 'SubElement', 'link-112');">SubElement</a></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-1981', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L1785"></a><tt class="py-lineno">1785</tt>  <tt class="py-line">        <tt id="link-1982" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1982', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1983" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -5966,25 +5962,25 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1986', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1987" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1987', 'SubElement', 'link-112');">SubElement</a></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">a</tt> <tt class="py-op">=</tt> <tt id="link-1988" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1983', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1984" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1984', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
+<a name="L1786"></a><tt class="py-lineno">1786</tt>  <tt class="py-line"> </tt>
+<a name="L1787"></a><tt class="py-lineno">1787</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1985" 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-1988', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</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">b</tt> <tt class="py-op">=</tt> <tt id="link-1989" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1989', 'SubElement', 'link-112');">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="L1776"></a><tt class="py-lineno">1776</tt>  <tt class="py-line">         </tt>
-<a name="L1777"></a><tt class="py-lineno">1777</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>
-<a name="L1778"></a><tt class="py-lineno">1778</tt>  <tt class="py-line">                          <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1990" class="py-name" targets="Method lxml.etree._Attrib.__setitem__()=lxml.etree._Attrib-class.html#__setitem__,Method lxml.etree._Element.__setitem__()=lxml.etree._Element-class.html#__setitem__,Method lxml.html.FieldsDict.__setitem__()=lxml.html.FieldsDict-class.html#__setitem__,Method lxml.objectify.ObjectifiedElement.__setitem__()=lxml.objectify.ObjectifiedElement-class.html#__setitem__"><a title="lxml.etree._Attrib.__setitem__
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1985', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</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">b</tt> <tt class="py-op">=</tt> <tt id="link-1986" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1986', 'SubElement', 'link-112');">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="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-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>
+<a name="L1791"></a><tt class="py-lineno">1791</tt>  <tt class="py-line">                          <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1987" class="py-name" targets="Method lxml.etree._Attrib.__setitem__()=lxml.etree._Attrib-class.html#__setitem__,Method lxml.etree._Element.__setitem__()=lxml.etree._Element-class.html#__setitem__,Method lxml.html.FieldsDict.__setitem__()=lxml.html.FieldsDict-class.html#__setitem__,Method lxml.objectify.ObjectifiedElement.__setitem__()=lxml.objectify.ObjectifiedElement-class.html#__setitem__"><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-1990', '__setitem__', 'link-1990');">__setitem__</a></tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-string">'foo'</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_append_error"></a><div id="ETreeOnlyTestCase.test_append_error-def"><a name="L1780"></a><tt class="py-lineno">1780</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_append_error-toggle" onclick="return toggle('ETreeOnlyTestCase.test_append_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_append_error">test_append_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_append_error-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_append_error-expanded"><a name="L1781"></a><tt class="py-lineno">1781</tt>  <tt class="py-line">        <tt id="link-1991" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.ObjectifiedElement.__setitem__" class="py-name" href="#" onclick="return doclink('link-1987', '__setitem__', 'link-1987');">__setitem__</a></tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1792"></a><tt class="py-lineno">1792</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_append_error"></a><div id="ETreeOnlyTestCase.test_append_error-def"><a name="L1793"></a><tt class="py-lineno">1793</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_append_error-toggle" onclick="return toggle('ETreeOnlyTestCase.test_append_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_append_error">test_append_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_append_error-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_append_error-expanded"><a name="L1794"></a><tt class="py-lineno">1794</tt>  <tt class="py-line">        <tt id="link-1988" 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-1991', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1992" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1988', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1989" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -5992,33 +5988,33 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1992', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1993" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1989', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1990" 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-1993', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L1782"></a><tt class="py-lineno">1782</tt>  <tt class="py-line">        <tt id="link-1994" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1994', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1995" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1990', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L1795"></a><tt class="py-lineno">1795</tt>  <tt class="py-line">        <tt id="link-1991" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1991', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1992" 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-1995', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1783"></a><tt class="py-lineno">1783</tt>  <tt class="py-line">        <tt class="py-comment"># raises AssertionError in ElementTree</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">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</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-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1997" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1997', 'append', 'link-726');">append</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L1785"></a><tt class="py-lineno">1785</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 id="link-1998" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1998', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1999" 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-1999', 'extend', 'link-1999');">extend</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-op">)</tt> </tt>
-<a name="L1786"></a><tt class="py-lineno">1786</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 id="link-2000" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2000', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-2001" class="py-name"><a title="lxml.etree._Element.extend" class="py-name" href="#" onclick="return doclink('link-2001', 'extend', 'link-1999');">extend</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt id="link-2002" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1992', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1796"></a><tt class="py-lineno">1796</tt>  <tt class="py-line">        <tt class="py-comment"># raises AssertionError in ElementTree</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">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt id="link-1993" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1993', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1994" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1994', 'append', 'link-322');">append</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</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">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 id="link-1995" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1995', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1996" 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-1996', 'extend', 'link-1996');">extend</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-op">)</tt> </tt>
+<a name="L1799"></a><tt class="py-lineno">1799</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 id="link-1997" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1997', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-1998" class="py-name"><a title="lxml.etree._Element.extend" class="py-name" href="#" onclick="return doclink('link-1998', 'extend', 'link-1996');">extend</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt id="link-1999" 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-2002', 'Element', 'link-69');">Element</a></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">None</tt><tt class="py-op">]</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-string">'one'</tt><tt class="py-op">,</tt> <tt id="link-2003" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2003', 'root', 'link-247');">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-2004" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1999', 'Element', 'link-69');">Element</a></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">None</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1800"></a><tt class="py-lineno">1800</tt>  <tt class="py-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">'one'</tt><tt class="py-op">,</tt> <tt id="link-2000" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2000', 'root', 'link-247');">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-2001" 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-2004', 'tag', 'link-73');">tag</a></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_append_recursive_error"></a><div id="ETreeOnlyTestCase.test_append_recursive_error-def"><a name="L1789"></a><tt class="py-lineno">1789</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_append_recursive_error-toggle" onclick="return toggle('ETreeOnlyTestCase.test_append_recursive_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_append_recursive_error">test_append_recursive_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_append_recursive_error-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_append_recursive_error-expanded"><a name="L1790"></a><tt class="py-lineno">1790</tt>  <tt class="py-line">        <tt id="link-2005" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2001', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1801"></a><tt class="py-lineno">1801</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_append_recursive_error"></a><div id="ETreeOnlyTestCase.test_append_recursive_error-def"><a name="L1802"></a><tt class="py-lineno">1802</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_append_recursive_error-toggle" onclick="return toggle('ETreeOnlyTestCase.test_append_recursive_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_append_recursive_error">test_append_recursive_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_append_recursive_error-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_append_recursive_error-expanded"><a name="L1803"></a><tt class="py-lineno">1803</tt>  <tt class="py-line">        <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-2005', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2006" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2002', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2003" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -6026,11 +6022,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2006', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2007" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2003', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2004" 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-2007', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L1791"></a><tt class="py-lineno">1791</tt>  <tt class="py-line">        <tt id="link-2008" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2008', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2009" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2004', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L1804"></a><tt class="py-lineno">1804</tt>  <tt class="py-line">        <tt id="link-2005" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2005', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2006" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -6038,29 +6034,29 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2009', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2010" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2010', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
-<a name="L1792"></a><tt class="py-lineno">1792</tt>  <tt class="py-line">        <tt id="link-2011" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2011', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2012" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2006', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2007" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2007', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
+<a name="L1805"></a><tt class="py-lineno">1805</tt>  <tt class="py-line">        <tt id="link-2008" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2008', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2009" 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-2012', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</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">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-2013" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2013', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-2014" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2014', 'append', 'link-726');">append</a></tt><tt class="py-op">,</tt> <tt id="link-2015" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2015', 'root', 'link-247');">root</a></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">child</tt> <tt class="py-op">=</tt> <tt id="link-2016" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2016', 'SubElement', 'link-112');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-2017" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2017', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'child'</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 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">child</tt><tt class="py-op">.</tt><tt id="link-2018" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2018', 'append', 'link-726');">append</a></tt><tt class="py-op">,</tt> <tt id="link-2019" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2019', 'root', 'link-247');">root</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">child2</tt> <tt class="py-op">=</tt> <tt id="link-2020" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2020', 'SubElement', 'link-112');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">child</tt><tt class="py-op">,</tt> <tt class="py-string">'child2'</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">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt class="py-name">child2</tt><tt class="py-op">.</tt><tt id="link-2021" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2021', 'append', 'link-726');">append</a></tt><tt class="py-op">,</tt> <tt id="link-2022" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2022', 'root', 'link-247');">root</a></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">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">child2</tt><tt class="py-op">.</tt><tt id="link-2023" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2023', 'append', 'link-726');">append</a></tt><tt class="py-op">,</tt> <tt class="py-name">child</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'child2'</tt><tt class="py-op">,</tt> <tt id="link-2024" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2024', 'root', 'link-247');">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 class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2025" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2009', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</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">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-2010" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2010', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-2011" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2011', 'append', 'link-322');">append</a></tt><tt class="py-op">,</tt> <tt id="link-2012" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2012', 'root', 'link-247');">root</a></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">child</tt> <tt class="py-op">=</tt> <tt id="link-2013" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2013', 'SubElement', 'link-112');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-2014" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2014', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'child'</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">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">child</tt><tt class="py-op">.</tt><tt id="link-2015" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2015', 'append', 'link-322');">append</a></tt><tt class="py-op">,</tt> <tt id="link-2016" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2016', 'root', 'link-247');">root</a></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">child2</tt> <tt class="py-op">=</tt> <tt id="link-2017" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2017', 'SubElement', 'link-112');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">child</tt><tt class="py-op">,</tt> <tt class="py-string">'child2'</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">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">child2</tt><tt class="py-op">.</tt><tt id="link-2018" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2018', 'append', 'link-322');">append</a></tt><tt class="py-op">,</tt> <tt id="link-2019" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2019', 'root', 'link-247');">root</a></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">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">child2</tt><tt class="py-op">.</tt><tt id="link-2020" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2020', 'append', 'link-322');">append</a></tt><tt class="py-op">,</tt> <tt class="py-name">child</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 class="py-string">'child2'</tt><tt class="py-op">,</tt> <tt id="link-2021" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2021', 'root', 'link-247');">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 class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2022" 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-2025', 'tag', 'link-73');">tag</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_addnext"></a><div id="ETreeOnlyTestCase.test_addnext-def"><a name="L1801"></a><tt class="py-lineno">1801</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_addnext-toggle" onclick="return toggle('ETreeOnlyTestCase.test_addnext');">-</a><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">test_addnext</a><tt class="py-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-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_addnext-expanded"><a name="L1802"></a><tt class="py-lineno">1802</tt>  <tt class="py-line">        <tt id="link-2026" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2022', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1813"></a><tt class="py-lineno">1813</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_addnext"></a><div id="ETreeOnlyTestCase.test_addnext-def"><a name="L1814"></a><tt class="py-lineno">1814</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_addnext-toggle" onclick="return toggle('ETreeOnlyTestCase.test_addnext');">-</a><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">test_addnext</a><tt class="py-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-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_addnext-expanded"><a name="L1815"></a><tt class="py-lineno">1815</tt>  <tt class="py-line">        <tt id="link-2023" 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-2026', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2027" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2023', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2024" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -6068,11 +6064,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2027', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2028" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2024', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2025" 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-2028', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L1803"></a><tt class="py-lineno">1803</tt>  <tt class="py-line">        <tt id="link-2029" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2029', 'SubElement', 'link-112');">SubElement</a></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
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2025', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L1816"></a><tt class="py-lineno">1816</tt>  <tt class="py-line">        <tt id="link-2026" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2026', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2027" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -6080,35 +6076,35 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2030', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2031" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2031', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
-<a name="L1804"></a><tt class="py-lineno">1804</tt>  <tt class="py-line">        <tt id="link-2032" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2032', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2033" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2027', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2028" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2028', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
+<a name="L1817"></a><tt class="py-lineno">1817</tt>  <tt class="py-line">        <tt id="link-2029" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2029', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2030" 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-2033', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1805"></a><tt class="py-lineno">1805</tt>  <tt class="py-line">        <tt id="link-2034" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2034', 'SubElement', 'link-112');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-2035" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2035', 'root', 'link-247');">root</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 id="link-2036" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2036', 'SubElement', 'link-112');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-2037" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2037', 'root', 'link-247');">root</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>
-<a name="L1808"></a><tt class="py-lineno">1808</tt>  <tt class="py-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-string">'b'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1809"></a><tt class="py-lineno">1809</tt>  <tt class="py-line">                          <tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2038" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2030', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1818"></a><tt class="py-lineno">1818</tt>  <tt class="py-line">        <tt id="link-2031" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2031', 'SubElement', 'link-112');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-2032" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2032', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1819"></a><tt class="py-lineno">1819</tt>  <tt class="py-line">        <tt id="link-2033" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2033', 'SubElement', 'link-112');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-2034" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2034', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1820"></a><tt class="py-lineno">1820</tt>  <tt class="py-line"> </tt>
+<a name="L1821"></a><tt class="py-lineno">1821</tt>  <tt class="py-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-string">'b'</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-op">[</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2035" 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-2038', 'tag', 'link-73');">tag</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-2039" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2039', 'root', 'link-247');">root</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1810"></a><tt class="py-lineno">1810</tt>  <tt class="py-line">        <tt id="link-2040" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2040', 'root', 'link-247');">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-2041" class="py-name" targets="Method lxml.etree._Element.addnext()=lxml.etree._Element-class.html#addnext"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-2041', 'addnext', 'link-2041');">addnext</a></tt><tt class="py-op">(</tt><tt id="link-2042" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2042', 'root', 'link-247');">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="L1811"></a><tt class="py-lineno">1811</tt>  <tt class="py-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-string">'a'</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-op">[</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2043" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2035', 'tag', 'link-73');">tag</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-2036" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2036', 'root', 'link-247');">root</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1823"></a><tt class="py-lineno">1823</tt>  <tt class="py-line">        <tt id="link-2037" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2037', 'root', 'link-247');">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-2038" class="py-name" targets="Method lxml.etree._Element.addnext()=lxml.etree._Element-class.html#addnext"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-2038', 'addnext', 'link-2038');">addnext</a></tt><tt class="py-op">(</tt><tt id="link-2039" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2039', 'root', 'link-247');">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="L1824"></a><tt class="py-lineno">1824</tt>  <tt class="py-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-string">'a'</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-op">[</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2040" 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-2043', 'tag', 'link-73');">tag</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-2044" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2044', 'root', 'link-247');">root</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1813"></a><tt class="py-lineno">1813</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_addprevious"></a><div id="ETreeOnlyTestCase.test_addprevious-def"><a name="L1814"></a><tt class="py-lineno">1814</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_addprevious-toggle" onclick="return toggle('ETreeOnlyTestCase.test_addprevious');">-</a><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">test_addprevious</a><tt class="py-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-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_addprevious-expanded"><a name="L1815"></a><tt class="py-lineno">1815</tt>  <tt class="py-line">        <tt id="link-2045" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2040', 'tag', 'link-73');">tag</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-2041" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2041', 'root', 'link-247');">root</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1826"></a><tt class="py-lineno">1826</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_addprevious"></a><div id="ETreeOnlyTestCase.test_addprevious-def"><a name="L1827"></a><tt class="py-lineno">1827</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_addprevious-toggle" onclick="return toggle('ETreeOnlyTestCase.test_addprevious');">-</a><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">test_addprevious</a><tt class="py-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-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_addprevious-expanded"><a name="L1828"></a><tt class="py-lineno">1828</tt>  <tt class="py-line">        <tt id="link-2042" 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-2045', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2046" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2042', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2043" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -6116,11 +6112,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2046', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2047" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2043', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2044" 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-2047', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L1816"></a><tt class="py-lineno">1816</tt>  <tt class="py-line">        <tt id="link-2048" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2048', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2049" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2044', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L1829"></a><tt class="py-lineno">1829</tt>  <tt class="py-line">        <tt id="link-2045" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2045', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2046" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -6128,35 +6124,35 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2049', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2050" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2050', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
-<a name="L1817"></a><tt class="py-lineno">1817</tt>  <tt class="py-line">        <tt id="link-2051" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2051', 'root', 'link-247');">root</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-2046', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2047" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2047', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
+<a name="L1830"></a><tt class="py-lineno">1830</tt>  <tt class="py-line">        <tt id="link-2048" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2048', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2049" 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-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1818"></a><tt class="py-lineno">1818</tt>  <tt class="py-line">        <tt id="link-2053" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2053', 'SubElement', 'link-112');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-2054" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2054', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1819"></a><tt class="py-lineno">1819</tt>  <tt class="py-line">        <tt id="link-2055" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2055', 'SubElement', 'link-112');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-2056" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2056', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1820"></a><tt class="py-lineno">1820</tt>  <tt class="py-line"> </tt>
-<a name="L1821"></a><tt class="py-lineno">1821</tt>  <tt class="py-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-string">'b'</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-op">[</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2057" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2049', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1831"></a><tt class="py-lineno">1831</tt>  <tt class="py-line">        <tt id="link-2050" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2050', 'SubElement', 'link-112');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-2051" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2051', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1832"></a><tt class="py-lineno">1832</tt>  <tt class="py-line">        <tt id="link-2052" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2052', 'SubElement', 'link-112');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-2053" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2053', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</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 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-string">'b'</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-op">[</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2054" 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-2057', 'tag', 'link-73');">tag</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-2058" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2058', 'root', 'link-247');">root</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1823"></a><tt class="py-lineno">1823</tt>  <tt class="py-line">        <tt id="link-2059" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2059', 'root', 'link-247');">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-2060" class="py-name" targets="Method lxml.etree._Element.addprevious()=lxml.etree._Element-class.html#addprevious"><a title="lxml.etree._Element.addprevious" class="py-name" href="#" onclick="return doclink('link-2060', 'addprevious', 'link-2060');">addprevious</a></tt><tt class="py-op">(</tt><tt id="link-2061" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2061', 'root', 'link-247');">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>
-<a name="L1824"></a><tt class="py-lineno">1824</tt>  <tt class="py-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-string">'a'</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-op">[</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2062" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2054', 'tag', 'link-73');">tag</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-2055" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2055', 'root', 'link-247');">root</a></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 id="link-2056" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2056', 'root', 'link-247');">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-2057" class="py-name" targets="Method lxml.etree._Element.addprevious()=lxml.etree._Element-class.html#addprevious"><a title="lxml.etree._Element.addprevious" class="py-name" href="#" onclick="return doclink('link-2057', 'addprevious', 'link-2057');">addprevious</a></tt><tt class="py-op">(</tt><tt id="link-2058" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2058', 'root', 'link-247');">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>
+<a name="L1837"></a><tt class="py-lineno">1837</tt>  <tt class="py-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-string">'a'</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-op">[</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2059" 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-2062', 'tag', 'link-73');">tag</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-2063" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2063', 'root', 'link-247');">root</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1826"></a><tt class="py-lineno">1826</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_addnext_cycle"></a><div id="ETreeOnlyTestCase.test_addnext_cycle-def"><a name="L1827"></a><tt class="py-lineno">1827</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="L1828"></a><tt class="py-lineno">1828</tt>  <tt class="py-line">        <tt id="link-2064" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2059', 'tag', 'link-73');">tag</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-2060" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2060', 'root', 'link-247');">root</a></tt><tt class="py-op">]</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_addnext_cycle"></a><div id="ETreeOnlyTestCase.test_addnext_cycle-def"><a name="L1840"></a><tt class="py-lineno">1840</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="L1841"></a><tt class="py-lineno">1841</tt>  <tt class="py-line">        <tt id="link-2061" 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-2064', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2065" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2061', 'Element', 'link-69');">Element</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.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -6164,11 +6160,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2065', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2066" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2062', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2063" 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-2066', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L1829"></a><tt class="py-lineno">1829</tt>  <tt class="py-line">        <tt id="link-2067" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2067', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2068" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2063', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L1842"></a><tt class="py-lineno">1842</tt>  <tt class="py-line">        <tt id="link-2064" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2064', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2065" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -6176,33 +6172,33 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2068', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2069" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2069', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
-<a name="L1830"></a><tt class="py-lineno">1830</tt>  <tt class="py-line">        <tt id="link-2070" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2070', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2071" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2065', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2066" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2066', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
+<a name="L1843"></a><tt class="py-lineno">1843</tt>  <tt class="py-line">        <tt id="link-2067" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2067', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2068" 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-2071', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</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">a</tt> <tt class="py-op">=</tt> <tt id="link-2072" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2072', 'SubElement', 'link-112');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-2073" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2073', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'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">b</tt> <tt class="py-op">=</tt> <tt id="link-2074" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2074', 'SubElement', 'link-112');">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="L1833"></a><tt class="py-lineno">1833</tt>  <tt class="py-line">        <tt class="py-comment"># appending parent as sibling is forbidden</tt> </tt>
-<a name="L1834"></a><tt class="py-lineno">1834</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-2075" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-2075', 'addnext', 'link-2041');">addnext</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</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">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-2076" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2068', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</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">a</tt> <tt class="py-op">=</tt> <tt id="link-2069" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2069', 'SubElement', 'link-112');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-2070" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2070', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'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">b</tt> <tt class="py-op">=</tt> <tt id="link-2071" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2071', 'SubElement', 'link-112');">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="L1846"></a><tt class="py-lineno">1846</tt>  <tt class="py-line">        <tt class="py-comment"># appending parent as sibling is forbidden</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">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-2072" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-2072', 'addnext', 'link-2038');">addnext</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L1848"></a><tt class="py-lineno">1848</tt>  <tt class="py-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-2073" 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-2076', 'tag', 'link-73');">tag</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">c</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-247');">root</a></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">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-2078" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2073', 'tag', 'link-73');">tag</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-2074" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2074', 'root', 'link-247');">root</a></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">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-2075" 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-2078', 'tag', 'link-73');">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="L1837"></a><tt class="py-lineno">1837</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_addprevious_cycle"></a><div id="ETreeOnlyTestCase.test_addprevious_cycle-def"><a name="L1838"></a><tt class="py-lineno">1838</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="L1839"></a><tt class="py-lineno">1839</tt>  <tt class="py-line">        <tt id="link-2079" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2075', 'tag', 'link-73');">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="L1850"></a><tt class="py-lineno">1850</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_addprevious_cycle"></a><div id="ETreeOnlyTestCase.test_addprevious_cycle-def"><a name="L1851"></a><tt class="py-lineno">1851</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="L1852"></a><tt class="py-lineno">1852</tt>  <tt class="py-line">        <tt id="link-2076" 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-2079', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2080" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2076', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2077" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -6210,11 +6206,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2080', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2081" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2077', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2078" 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-2081', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L1840"></a><tt class="py-lineno">1840</tt>  <tt class="py-line">        <tt id="link-2082" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2082', 'SubElement', 'link-112');">SubElement</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
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2078', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L1853"></a><tt class="py-lineno">1853</tt>  <tt class="py-line">        <tt id="link-2079" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2079', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2080" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -6222,33 +6218,33 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2083', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2084" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2084', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
-<a name="L1841"></a><tt class="py-lineno">1841</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-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2086" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2080', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2081" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2081', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
+<a name="L1854"></a><tt class="py-lineno">1854</tt>  <tt class="py-line">        <tt id="link-2082" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2082', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2083" 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-2086', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1842"></a><tt class="py-lineno">1842</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2087" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2087', 'SubElement', 'link-112');">SubElement</a></tt><tt class="py-op">(</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-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</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">b</tt> <tt class="py-op">=</tt> <tt id="link-2089" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2089', 'SubElement', 'link-112');">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="L1844"></a><tt class="py-lineno">1844</tt>  <tt class="py-line">        <tt class="py-comment"># appending parent as sibling is forbidden</tt> </tt>
-<a name="L1845"></a><tt class="py-lineno">1845</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-2090" class="py-name"><a title="lxml.etree._Element.addprevious" class="py-name" href="#" onclick="return doclink('link-2090', 'addprevious', 'link-2060');">addprevious</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</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 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-2091" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2083', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</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">a</tt> <tt class="py-op">=</tt> <tt id="link-2084" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2084', 'SubElement', 'link-112');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-2085" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2085', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'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">b</tt> <tt class="py-op">=</tt> <tt id="link-2086" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2086', 'SubElement', 'link-112');">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="L1857"></a><tt class="py-lineno">1857</tt>  <tt class="py-line">        <tt class="py-comment"># appending parent as sibling is forbidden</tt> </tt>
+<a name="L1858"></a><tt class="py-lineno">1858</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-2087" class="py-name"><a title="lxml.etree._Element.addprevious" class="py-name" href="#" onclick="return doclink('link-2087', 'addprevious', 'link-2057');">addprevious</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</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">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-2088" 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-2091', 'tag', 'link-73');">tag</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-2092" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2092', 'root', 'link-247');">root</a></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">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-2093" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2088', 'tag', 'link-73');">tag</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-2089" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2089', 'root', 'link-247');">root</a></tt><tt class="py-op">]</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 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-2090" 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-2093', 'tag', 'link-73');">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="L1848"></a><tt class="py-lineno">1848</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_addnext_cycle_long"></a><div id="ETreeOnlyTestCase.test_addnext_cycle_long-def"><a name="L1849"></a><tt class="py-lineno">1849</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="L1850"></a><tt class="py-lineno">1850</tt>  <tt class="py-line">        <tt id="link-2094" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2090', 'tag', 'link-73');">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="L1861"></a><tt class="py-lineno">1861</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_addnext_cycle_long"></a><div id="ETreeOnlyTestCase.test_addnext_cycle_long-def"><a name="L1862"></a><tt class="py-lineno">1862</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="L1863"></a><tt class="py-lineno">1863</tt>  <tt class="py-line">        <tt id="link-2091" 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-2094', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2095" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2091', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2092" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -6256,11 +6252,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2095', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2096" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2092', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2093" 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-2096', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L1851"></a><tt class="py-lineno">1851</tt>  <tt class="py-line">        <tt id="link-2097" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2097', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2098" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2093', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L1864"></a><tt class="py-lineno">1864</tt>  <tt class="py-line">        <tt id="link-2094" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2094', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2095" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -6268,22 +6264,22 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2098', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2099" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2099', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
-<a name="L1852"></a><tt class="py-lineno">1852</tt>  <tt class="py-line">        <tt id="link-2100" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2100', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2101" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2095', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2096" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2096', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
+<a name="L1865"></a><tt class="py-lineno">1865</tt>  <tt class="py-line">        <tt id="link-2097" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2097', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2098" 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-2101', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</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">a</tt> <tt class="py-op">=</tt> <tt id="link-2102" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2102', 'SubElement', 'link-112');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-2103" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2103', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1854"></a><tt class="py-lineno">1854</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2104" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2104', 'SubElement', 'link-112');">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="L1855"></a><tt class="py-lineno">1855</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2105" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2105', 'SubElement', 'link-112');">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="L1856"></a><tt class="py-lineno">1856</tt>  <tt class="py-line">        <tt class="py-comment"># appending parent as sibling is forbidden</tt> </tt>
-<a name="L1857"></a><tt class="py-lineno">1857</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-2106" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-2106', 'addnext', 'link-2041');">addnext</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1858"></a><tt class="py-lineno">1858</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_addprevious_cycle_long"></a><div id="ETreeOnlyTestCase.test_addprevious_cycle_long-def"><a name="L1859"></a><tt class="py-lineno">1859</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="L1860"></a><tt class="py-lineno">1860</tt>  <tt class="py-line">        <tt id="link-2107" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2098', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</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">a</tt> <tt class="py-op">=</tt> <tt id="link-2099" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2099', 'SubElement', 'link-112');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-2100" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2100', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1867"></a><tt class="py-lineno">1867</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2101" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2101', 'SubElement', 'link-112');">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="L1868"></a><tt class="py-lineno">1868</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2102" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2102', 'SubElement', 'link-112');">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="L1869"></a><tt class="py-lineno">1869</tt>  <tt class="py-line">        <tt class="py-comment"># appending parent as sibling is forbidden</tt> </tt>
+<a name="L1870"></a><tt class="py-lineno">1870</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-2103" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-2103', 'addnext', 'link-2038');">addnext</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1871"></a><tt class="py-lineno">1871</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_addprevious_cycle_long"></a><div id="ETreeOnlyTestCase.test_addprevious_cycle_long-def"><a name="L1872"></a><tt class="py-lineno">1872</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="L1873"></a><tt class="py-lineno">1873</tt>  <tt class="py-line">        <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-2107', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2108" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2104', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2105" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -6291,11 +6287,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2108', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2109" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2105', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2106" 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-2109', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L1861"></a><tt class="py-lineno">1861</tt>  <tt class="py-line">        <tt id="link-2110" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2110', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2111" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2106', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L1874"></a><tt class="py-lineno">1874</tt>  <tt class="py-line">        <tt id="link-2107" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2107', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2108" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -6303,22 +6299,22 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2111', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2112" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2112', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
-<a name="L1862"></a><tt class="py-lineno">1862</tt>  <tt class="py-line">        <tt id="link-2113" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2113', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2114" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2108', 'etree', 'link-3');">etree</a></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-112');">SubElement</a></tt> </tt>
+<a name="L1875"></a><tt class="py-lineno">1875</tt>  <tt class="py-line">        <tt id="link-2110" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2110', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2111" 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-2114', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</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">a</tt> <tt class="py-op">=</tt> <tt id="link-2115" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2115', 'SubElement', 'link-112');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-2116" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2116', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'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">b</tt> <tt class="py-op">=</tt> <tt id="link-2117" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2117', 'SubElement', 'link-112');">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="L1865"></a><tt class="py-lineno">1865</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2118" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2118', 'SubElement', 'link-112');">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="L1866"></a><tt class="py-lineno">1866</tt>  <tt class="py-line">        <tt class="py-comment"># appending parent as sibling is forbidden</tt> </tt>
-<a name="L1867"></a><tt class="py-lineno">1867</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-2119" class="py-name"><a title="lxml.etree._Element.addprevious" class="py-name" href="#" onclick="return doclink('link-2119', 'addprevious', 'link-2060');">addprevious</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1868"></a><tt class="py-lineno">1868</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_addprevious_noops"></a><div id="ETreeOnlyTestCase.test_addprevious_noops-def"><a name="L1869"></a><tt class="py-lineno">1869</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="L1870"></a><tt class="py-lineno">1870</tt>  <tt class="py-line">        <tt id="link-2120" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2111', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1876"></a><tt class="py-lineno">1876</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2112" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2112', 'SubElement', 'link-112');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-2113" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2113', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1877"></a><tt class="py-lineno">1877</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.SubElement" class="py-name" href="#" onclick="return doclink('link-2114', 'SubElement', 'link-112');">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="L1878"></a><tt class="py-lineno">1878</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.SubElement" class="py-name" href="#" onclick="return doclink('link-2115', 'SubElement', 'link-112');">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="L1879"></a><tt class="py-lineno">1879</tt>  <tt class="py-line">        <tt class="py-comment"># appending parent as sibling is forbidden</tt> </tt>
+<a name="L1880"></a><tt class="py-lineno">1880</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-2116" class="py-name"><a title="lxml.etree._Element.addprevious" class="py-name" href="#" onclick="return doclink('link-2116', 'addprevious', 'link-2057');">addprevious</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1881"></a><tt class="py-lineno">1881</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_addprevious_noops"></a><div id="ETreeOnlyTestCase.test_addprevious_noops-def"><a name="L1882"></a><tt class="py-lineno">1882</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="L1883"></a><tt class="py-lineno">1883</tt>  <tt class="py-line">        <tt id="link-2117" 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-2120', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2121" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2117', 'Element', 'link-69');">Element</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.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -6326,11 +6322,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2121', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2122" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2118', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2119" 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-2122', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L1871"></a><tt class="py-lineno">1871</tt>  <tt class="py-line">        <tt id="link-2123" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2123', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2124" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2119', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L1884"></a><tt class="py-lineno">1884</tt>  <tt class="py-line">        <tt id="link-2120" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2120', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2121" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -6338,58 +6334,58 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2124', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2125" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2125', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
-<a name="L1872"></a><tt class="py-lineno">1872</tt>  <tt class="py-line">        <tt id="link-2126" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2126', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2127" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2121', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2122" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2122', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
+<a name="L1885"></a><tt class="py-lineno">1885</tt>  <tt class="py-line">        <tt id="link-2123" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2123', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2124" 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-2127', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</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">a</tt> <tt class="py-op">=</tt> <tt id="link-2128" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2128', 'SubElement', 'link-112');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-2129" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2129', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'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">b</tt> <tt class="py-op">=</tt> <tt id="link-2130" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2130', 'SubElement', 'link-112');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-2131" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2131', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1875"></a><tt class="py-lineno">1875</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2132" class="py-name"><a title="lxml.etree._Element.addprevious" class="py-name" href="#" onclick="return doclink('link-2132', 'addprevious', 'link-2060');">addprevious</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L1876"></a><tt class="py-lineno">1876</tt>  <tt class="py-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-2133" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2133', 'root', 'link-247');">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-2134" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2124', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</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">a</tt> <tt class="py-op">=</tt> <tt id="link-2125" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2125', 'SubElement', 'link-112');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-2126" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2126', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1887"></a><tt class="py-lineno">1887</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2127" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2127', 'SubElement', 'link-112');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-2128" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2128', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'b'</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">a</tt><tt class="py-op">.</tt><tt id="link-2129" class="py-name"><a title="lxml.etree._Element.addprevious" class="py-name" href="#" onclick="return doclink('link-2129', 'addprevious', 'link-2057');">addprevious</a></tt><tt class="py-op">(</tt><tt class="py-name">a</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">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-2130" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2130', 'root', 'link-247');">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-2131" 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-2134', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1877"></a><tt class="py-lineno">1877</tt>  <tt class="py-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-2135" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2135', 'root', 'link-247');">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-2136" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2131', 'tag', 'link-73');">tag</a></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">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-2132" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2132', 'root', 'link-247');">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-2133" 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-2136', 'tag', 'link-73');">tag</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-2137" class="py-name"><a title="lxml.etree._Element.addprevious" class="py-name" href="#" onclick="return doclink('link-2137', 'addprevious', 'link-2060');">addprevious</a></tt><tt class="py-op">(</tt><tt class="py-name">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">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-2138" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2138', 'root', 'link-247');">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-2139" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2133', 'tag', 'link-73');">tag</a></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">b</tt><tt class="py-op">.</tt><tt id="link-2134" class="py-name"><a title="lxml.etree._Element.addprevious" class="py-name" href="#" onclick="return doclink('link-2134', 'addprevious', 'link-2057');">addprevious</a></tt><tt class="py-op">(</tt><tt class="py-name">b</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-string">'a'</tt><tt class="py-op">,</tt> <tt id="link-2135" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2135', 'root', 'link-247');">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-2136" 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-2139', 'tag', 'link-73');">tag</a></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">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-2140" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2140', 'root', 'link-247');">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-2141" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2136', 'tag', 'link-73');">tag</a></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">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-2137" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2137', 'root', 'link-247');">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-2138" 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-2141', 'tag', 'link-73');">tag</a></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">b</tt><tt class="py-op">.</tt><tt id="link-2142" class="py-name"><a title="lxml.etree._Element.addprevious" class="py-name" href="#" onclick="return doclink('link-2142', 'addprevious', 'link-2060');">addprevious</a></tt><tt class="py-op">(</tt><tt class="py-name">a</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">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-2143" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2143', 'root', 'link-247');">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-2144" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2138', 'tag', 'link-73');">tag</a></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">b</tt><tt class="py-op">.</tt><tt id="link-2139" class="py-name"><a title="lxml.etree._Element.addprevious" class="py-name" href="#" onclick="return doclink('link-2139', 'addprevious', 'link-2057');">addprevious</a></tt><tt class="py-op">(</tt><tt class="py-name">a</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">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-2140" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2140', 'root', 'link-247');">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-2141" 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-2144', 'tag', 'link-73');">tag</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-string">'b'</tt><tt class="py-op">,</tt> <tt id="link-2145" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2145', 'root', 'link-247');">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-2146" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2141', 'tag', 'link-73');">tag</a></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">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-2142" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2142', 'root', 'link-247');">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-2143" 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-2146', 'tag', 'link-73');">tag</a></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_addnext_noops"></a><div id="ETreeOnlyTestCase.test_addnext_noops-def"><a name="L1885"></a><tt class="py-lineno">1885</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="L1886"></a><tt class="py-lineno">1886</tt>  <tt class="py-line">        <tt id="link-2147" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2143', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1897"></a><tt class="py-lineno">1897</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_addnext_noops"></a><div id="ETreeOnlyTestCase.test_addnext_noops-def"><a name="L1898"></a><tt class="py-lineno">1898</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="L1899"></a><tt class="py-lineno">1899</tt>  <tt class="py-line">        <tt id="link-2144" 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-2147', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2148" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2144', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2145" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -6397,11 +6393,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2148', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2149" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2145', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2146" 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-2149', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L1887"></a><tt class="py-lineno">1887</tt>  <tt class="py-line">        <tt id="link-2150" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2150', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2151" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2146', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L1900"></a><tt class="py-lineno">1900</tt>  <tt class="py-line">        <tt id="link-2147" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2147', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2148" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -6409,58 +6405,58 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2151', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2152" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2152', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
-<a name="L1888"></a><tt class="py-lineno">1888</tt>  <tt class="py-line">        <tt id="link-2153" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2153', 'root', 'link-247');">root</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-2148', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2149" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2149', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
+<a name="L1901"></a><tt class="py-lineno">1901</tt>  <tt class="py-line">        <tt id="link-2150" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2150', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2151" 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-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</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">a</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-112');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-2156" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2156', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</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">b</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-112');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-2158" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2158', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'b'</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">a</tt><tt class="py-op">.</tt><tt id="link-2159" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-2159', 'addnext', 'link-2041');">addnext</a></tt><tt class="py-op">(</tt><tt class="py-name">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-string">'a'</tt><tt class="py-op">,</tt> <tt id="link-2160" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2160', 'root', 'link-247');">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-2161" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2151', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</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">a</tt> <tt class="py-op">=</tt> <tt id="link-2152" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2152', 'SubElement', 'link-112');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-2153" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2153', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</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">b</tt> <tt class="py-op">=</tt> <tt id="link-2154" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2154', 'SubElement', 'link-112');">SubElement</a></tt><tt class="py-op">(</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-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'b'</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">a</tt><tt class="py-op">.</tt><tt id="link-2156" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-2156', 'addnext', 'link-2038');">addnext</a></tt><tt class="py-op">(</tt><tt class="py-name">a</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 class="py-string">'a'</tt><tt class="py-op">,</tt> <tt id="link-2157" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2157', 'root', 'link-247');">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-2158" 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-2161', 'tag', 'link-73');">tag</a></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">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-2162" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2162', 'root', 'link-247');">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-2163" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2158', 'tag', 'link-73');">tag</a></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 class="py-string">'b'</tt><tt class="py-op">,</tt> <tt id="link-2159" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2159', 'root', 'link-247');">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-2160" 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-2163', 'tag', 'link-73');">tag</a></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">b</tt><tt class="py-op">.</tt><tt id="link-2164" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-2164', 'addnext', 'link-2041');">addnext</a></tt><tt class="py-op">(</tt><tt class="py-name">b</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">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-2165" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2165', 'root', 'link-247');">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-2166" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2160', 'tag', 'link-73');">tag</a></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">b</tt><tt class="py-op">.</tt><tt id="link-2161" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-2161', 'addnext', 'link-2038');">addnext</a></tt><tt class="py-op">(</tt><tt class="py-name">b</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 class="py-string">'a'</tt><tt class="py-op">,</tt> <tt id="link-2162" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2162', 'root', 'link-247');">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-2163" 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-2166', 'tag', 'link-73');">tag</a></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">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-2167" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2167', 'root', 'link-247');">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-2168" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2163', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1909"></a><tt class="py-lineno">1909</tt>  <tt class="py-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-2164" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2164', 'root', 'link-247');">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-2165" 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-2168', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1897"></a><tt class="py-lineno">1897</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2169" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-2169', 'addnext', 'link-2041');">addnext</a></tt><tt class="py-op">(</tt><tt class="py-name">b</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">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-2170" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2170', 'root', 'link-247');">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-2171" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2165', 'tag', 'link-73');">tag</a></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">a</tt><tt class="py-op">.</tt><tt id="link-2166" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-2166', 'addnext', 'link-2038');">addnext</a></tt><tt class="py-op">(</tt><tt class="py-name">b</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 class="py-string">'a'</tt><tt class="py-op">,</tt> <tt id="link-2167" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2167', 'root', 'link-247');">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-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-2171', 'tag', 'link-73');">tag</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">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-2172" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2172', 'root', 'link-247');">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-2173" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2168', 'tag', 'link-73');">tag</a></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">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-2169" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2169', 'root', 'link-247');">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-2170" 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-2173', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1900"></a><tt class="py-lineno">1900</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_addnext_root"></a><div id="ETreeOnlyTestCase.test_addnext_root-def"><a name="L1901"></a><tt class="py-lineno">1901</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="L1902"></a><tt class="py-lineno">1902</tt>  <tt class="py-line">        <tt id="link-2174" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2170', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1913"></a><tt class="py-lineno">1913</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_addnext_root"></a><div id="ETreeOnlyTestCase.test_addnext_root-def"><a name="L1914"></a><tt class="py-lineno">1914</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="L1915"></a><tt class="py-lineno">1915</tt>  <tt class="py-line">        <tt id="link-2171" 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-2174', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2175" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2171', 'Element', 'link-69');">Element</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.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -6468,25 +6464,25 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2175', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2176" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2172', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2173" 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-2176', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L1903"></a><tt class="py-lineno">1903</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2177" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2173', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L1916"></a><tt class="py-lineno">1916</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2174" 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-2177', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</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">b</tt> <tt class="py-op">=</tt> <tt id="link-2178" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2174', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1917"></a><tt class="py-lineno">1917</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2175" 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-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'b'</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">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-2179" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-2179', 'addnext', 'link-2041');">addnext</a></tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1906"></a><tt class="py-lineno">1906</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_addprevious_pi"></a><div id="ETreeOnlyTestCase.test_addprevious_pi-def"><a name="L1907"></a><tt class="py-lineno">1907</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="L1908"></a><tt class="py-lineno">1908</tt>  <tt class="py-line">        <tt id="link-2180" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2175', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1918"></a><tt class="py-lineno">1918</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-2176" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-2176', 'addnext', 'link-2038');">addnext</a></tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1919"></a><tt class="py-lineno">1919</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_addprevious_pi"></a><div id="ETreeOnlyTestCase.test_addprevious_pi-def"><a name="L1920"></a><tt class="py-lineno">1920</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="L1921"></a><tt class="py-lineno">1921</tt>  <tt class="py-line">        <tt id="link-2177" 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-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2181" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2177', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2178" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -6494,11 +6490,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2181', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2182" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2178', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2179" 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-2182', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L1909"></a><tt class="py-lineno">1909</tt>  <tt class="py-line">        <tt id="link-2183" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2183', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2184" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2179', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L1922"></a><tt class="py-lineno">1922</tt>  <tt class="py-line">        <tt id="link-2180" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2180', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2181" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -6506,8 +6502,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2184', 'etree', 'link-3');">etree</a></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-112');">SubElement</a></tt> </tt>
-<a name="L1910"></a><tt class="py-lineno">1910</tt>  <tt class="py-line">        <tt id="link-2186" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2186', 'PI', 'link-521');">PI</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2187" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2181', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2182" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2182', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
+<a name="L1923"></a><tt class="py-lineno">1923</tt>  <tt class="py-line">        <tt id="link-2183" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2183', 'PI', 'link-518');">PI</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2184" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -6515,32 +6511,32 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2187', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2188" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2188', 'PI', 'link-521');">PI</a></tt> </tt>
-<a name="L1911"></a><tt class="py-lineno">1911</tt>  <tt class="py-line">        <tt id="link-2189" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2189', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2190" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2184', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2185" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2185', 'PI', 'link-518');">PI</a></tt> </tt>
+<a name="L1924"></a><tt class="py-lineno">1924</tt>  <tt class="py-line">        <tt id="link-2186" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2186', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2187" 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-2190', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1912"></a><tt class="py-lineno">1912</tt>  <tt class="py-line">        <tt id="link-2191" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2191', 'SubElement', 'link-112');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-2192" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2192', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1913"></a><tt class="py-lineno">1913</tt>  <tt class="py-line">        <tt id="link-2193" class="py-name" targets="Method lxml.etree.C14NWriterTarget.pi()=lxml.etree.C14NWriterTarget-class.html#pi,Method lxml.etree.TreeBuilder.pi()=lxml.etree.TreeBuilder-class.html#pi"><a title="lxml.etree.C14NWriterTarget.pi
-lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-2193', 'pi', 'link-2193');">pi</a></tt> <tt class="py-op">=</tt> <tt id="link-2194" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2194', 'PI', 'link-521');">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="L1914"></a><tt class="py-lineno">1914</tt>  <tt class="py-line">        <tt id="link-2195" class="py-name"><a title="lxml.etree.C14NWriterTarget.pi
-lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-2195', 'pi', 'link-2193');">pi</a></tt><tt class="py-op">.</tt><tt id="link-2196" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2196', 'tail', 'link-981');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</tt> </tt>
-<a name="L1915"></a><tt class="py-lineno">1915</tt>  <tt class="py-line"> </tt>
-<a name="L1916"></a><tt class="py-lineno">1916</tt>  <tt class="py-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-2197" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2197', '_bytes', 'link-18');">_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="L1917"></a><tt class="py-lineno">1917</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2198" 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-2198', '_writeElement', 'link-370');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-2199" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2199', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1918"></a><tt class="py-lineno">1918</tt>  <tt class="py-line">        <tt id="link-2200" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2200', 'root', 'link-247');">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-2201" class="py-name"><a title="lxml.etree._Element.addprevious" class="py-name" href="#" onclick="return doclink('link-2201', 'addprevious', 'link-2060');">addprevious</a></tt><tt class="py-op">(</tt><tt id="link-2202" class="py-name"><a title="lxml.etree.C14NWriterTarget.pi
-lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-2202', 'pi', 'link-2193');">pi</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2203" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2203', '_bytes', 'link-18');">_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="L1920"></a><tt class="py-lineno">1920</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2204" 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-2204', '_writeElement', 'link-370');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-2205" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2205', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1921"></a><tt class="py-lineno">1921</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_addprevious_root_pi"></a><div id="ETreeOnlyTestCase.test_addprevious_root_pi-def"><a name="L1922"></a><tt class="py-lineno">1922</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="L1923"></a><tt class="py-lineno">1923</tt>  <tt class="py-line">        <tt id="link-2206" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2187', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1925"></a><tt class="py-lineno">1925</tt>  <tt class="py-line">        <tt id="link-2188" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2188', 'SubElement', 'link-112');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-2189" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2189', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1926"></a><tt class="py-lineno">1926</tt>  <tt class="py-line">        <tt id="link-2190" class="py-name" targets="Method lxml.etree.C14NWriterTarget.pi()=lxml.etree.C14NWriterTarget-class.html#pi,Method lxml.etree.TreeBuilder.pi()=lxml.etree.TreeBuilder-class.html#pi"><a title="lxml.etree.C14NWriterTarget.pi
+lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-2190', 'pi', 'link-2190');">pi</a></tt> <tt class="py-op">=</tt> <tt id="link-2191" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2191', 'PI', 'link-518');">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="L1927"></a><tt class="py-lineno">1927</tt>  <tt class="py-line">        <tt id="link-2192" class="py-name"><a title="lxml.etree.C14NWriterTarget.pi
+lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-2192', 'pi', 'link-2190');">pi</a></tt><tt class="py-op">.</tt><tt id="link-2193" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2193', 'tail', 'link-978');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</tt> </tt>
+<a name="L1928"></a><tt class="py-lineno">1928</tt>  <tt class="py-line"> </tt>
+<a name="L1929"></a><tt class="py-lineno">1929</tt>  <tt class="py-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-2194" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2194', '_bytes', 'link-18');">_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="L1930"></a><tt class="py-lineno">1930</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2195" 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-2195', '_writeElement', 'link-367');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-2196" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2196', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1931"></a><tt class="py-lineno">1931</tt>  <tt class="py-line">        <tt id="link-2197" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2197', 'root', 'link-247');">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-2198" class="py-name"><a title="lxml.etree._Element.addprevious" class="py-name" href="#" onclick="return doclink('link-2198', 'addprevious', 'link-2057');">addprevious</a></tt><tt class="py-op">(</tt><tt id="link-2199" class="py-name"><a title="lxml.etree.C14NWriterTarget.pi
+lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-2199', 'pi', 'link-2190');">pi</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2200" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2200', '_bytes', 'link-18');">_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="L1933"></a><tt class="py-lineno">1933</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2201" 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-2201', '_writeElement', 'link-367');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-2202" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2202', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1934"></a><tt class="py-lineno">1934</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_addprevious_root_pi"></a><div id="ETreeOnlyTestCase.test_addprevious_root_pi-def"><a name="L1935"></a><tt class="py-lineno">1935</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="L1936"></a><tt class="py-lineno">1936</tt>  <tt class="py-line">        <tt id="link-2203" 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-2206', 'Element', 'link-69');">Element</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-2203', 'Element', 'link-69');">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
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -6548,11 +6544,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2207', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2208" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2204', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2205" 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-2208', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L1924"></a><tt class="py-lineno">1924</tt>  <tt class="py-line">        <tt id="link-2209" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2209', 'PI', 'link-521');">PI</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2210" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2205', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L1937"></a><tt class="py-lineno">1937</tt>  <tt class="py-line">        <tt id="link-2206" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2206', 'PI', 'link-518');">PI</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
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -6560,31 +6556,31 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2210', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2211" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2211', 'PI', 'link-521');">PI</a></tt> </tt>
-<a name="L1925"></a><tt class="py-lineno">1925</tt>  <tt class="py-line">        <tt id="link-2212" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2212', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2213" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2207', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2208" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2208', 'PI', 'link-518');">PI</a></tt> </tt>
+<a name="L1938"></a><tt class="py-lineno">1938</tt>  <tt class="py-line">        <tt id="link-2209" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2209', 'root', 'link-247');">root</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-2213', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1926"></a><tt class="py-lineno">1926</tt>  <tt class="py-line">        <tt id="link-2214" class="py-name"><a title="lxml.etree.C14NWriterTarget.pi
-lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-2214', 'pi', 'link-2193');">pi</a></tt> <tt class="py-op">=</tt> <tt id="link-2215" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2215', 'PI', 'link-521');">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="L1927"></a><tt class="py-lineno">1927</tt>  <tt class="py-line">        <tt id="link-2216" class="py-name"><a title="lxml.etree.C14NWriterTarget.pi
-lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-2216', 'pi', 'link-2193');">pi</a></tt><tt class="py-op">.</tt><tt id="link-2217" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2217', 'tail', 'link-981');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</tt> </tt>
-<a name="L1928"></a><tt class="py-lineno">1928</tt>  <tt class="py-line"> </tt>
-<a name="L1929"></a><tt class="py-lineno">1929</tt>  <tt class="py-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-2218" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2218', '_bytes', 'link-18');">_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="L1930"></a><tt class="py-lineno">1930</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2219" 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-2219', '_writeElement', 'link-370');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-2220" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2220', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1931"></a><tt class="py-lineno">1931</tt>  <tt class="py-line">        <tt id="link-2221" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2221', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-2222" class="py-name"><a title="lxml.etree._Element.addprevious" class="py-name" href="#" onclick="return doclink('link-2222', 'addprevious', 'link-2060');">addprevious</a></tt><tt class="py-op">(</tt><tt id="link-2223" class="py-name"><a title="lxml.etree.C14NWriterTarget.pi
-lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-2223', 'pi', 'link-2193');">pi</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2224" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2224', '_bytes', 'link-18');">_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="L1933"></a><tt class="py-lineno">1933</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2225" 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-2225', '_writeElement', 'link-370');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-2226" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2226', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1934"></a><tt class="py-lineno">1934</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_addnext_pi"></a><div id="ETreeOnlyTestCase.test_addnext_pi-def"><a name="L1935"></a><tt class="py-lineno">1935</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="L1936"></a><tt class="py-lineno">1936</tt>  <tt class="py-line">        <tt id="link-2227" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2210', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1939"></a><tt class="py-lineno">1939</tt>  <tt class="py-line">        <tt id="link-2211" class="py-name"><a title="lxml.etree.C14NWriterTarget.pi
+lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-2211', 'pi', 'link-2190');">pi</a></tt> <tt class="py-op">=</tt> <tt id="link-2212" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2212', 'PI', 'link-518');">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="L1940"></a><tt class="py-lineno">1940</tt>  <tt class="py-line">        <tt id="link-2213" class="py-name"><a title="lxml.etree.C14NWriterTarget.pi
+lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-2213', 'pi', 'link-2190');">pi</a></tt><tt class="py-op">.</tt><tt id="link-2214" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2214', 'tail', 'link-978');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2215" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2215', '_bytes', 'link-18');">_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="L1943"></a><tt class="py-lineno">1943</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2216" 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-2216', '_writeElement', 'link-367');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-2217" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2217', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1944"></a><tt class="py-lineno">1944</tt>  <tt class="py-line">        <tt id="link-2218" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2218', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-2219" class="py-name"><a title="lxml.etree._Element.addprevious" class="py-name" href="#" onclick="return doclink('link-2219', 'addprevious', 'link-2057');">addprevious</a></tt><tt class="py-op">(</tt><tt id="link-2220" class="py-name"><a title="lxml.etree.C14NWriterTarget.pi
+lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-2220', 'pi', 'link-2190');">pi</a></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 id="link-2221" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2221', '_bytes', 'link-18');">_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="L1946"></a><tt class="py-lineno">1946</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2222" 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-2222', '_writeElement', 'link-367');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-2223" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2223', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1947"></a><tt class="py-lineno">1947</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_addnext_pi"></a><div id="ETreeOnlyTestCase.test_addnext_pi-def"><a name="L1948"></a><tt class="py-lineno">1948</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="L1949"></a><tt class="py-lineno">1949</tt>  <tt class="py-line">        <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-2227', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2228" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2224', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2225" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -6592,11 +6588,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2228', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2229" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2225', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2226" 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-2229', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L1937"></a><tt class="py-lineno">1937</tt>  <tt class="py-line">        <tt id="link-2230" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2230', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2231" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2226', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L1950"></a><tt class="py-lineno">1950</tt>  <tt class="py-line">        <tt id="link-2227" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2227', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2228" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -6604,8 +6600,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2231', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2232" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2232', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
-<a name="L1938"></a><tt class="py-lineno">1938</tt>  <tt class="py-line">        <tt id="link-2233" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2233', 'PI', 'link-521');">PI</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2234" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2228', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2229" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2229', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
+<a name="L1951"></a><tt class="py-lineno">1951</tt>  <tt class="py-line">        <tt id="link-2230" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2230', 'PI', 'link-518');">PI</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2231" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -6613,32 +6609,32 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2234', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2235" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2235', 'PI', 'link-521');">PI</a></tt> </tt>
-<a name="L1939"></a><tt class="py-lineno">1939</tt>  <tt class="py-line">        <tt id="link-2236" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2236', 'root', 'link-247');">root</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-2231', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2232" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2232', 'PI', 'link-518');">PI</a></tt> </tt>
+<a name="L1952"></a><tt class="py-lineno">1952</tt>  <tt class="py-line">        <tt id="link-2233" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2233', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <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-2237', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1940"></a><tt class="py-lineno">1940</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-112');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-2239" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2239', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1941"></a><tt class="py-lineno">1941</tt>  <tt class="py-line">        <tt id="link-2240" class="py-name"><a title="lxml.etree.C14NWriterTarget.pi
-lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-2240', 'pi', 'link-2193');">pi</a></tt> <tt class="py-op">=</tt> <tt id="link-2241" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2241', 'PI', 'link-521');">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="L1942"></a><tt class="py-lineno">1942</tt>  <tt class="py-line">        <tt id="link-2242" class="py-name"><a title="lxml.etree.C14NWriterTarget.pi
-lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-2242', 'pi', 'link-2193');">pi</a></tt><tt class="py-op">.</tt><tt id="link-2243" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2243', 'tail', 'link-981');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</tt> </tt>
-<a name="L1943"></a><tt class="py-lineno">1943</tt>  <tt class="py-line"> </tt>
-<a name="L1944"></a><tt class="py-lineno">1944</tt>  <tt class="py-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-2244" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2244', '_bytes', 'link-18');">_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="L1945"></a><tt class="py-lineno">1945</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2245" 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-2245', '_writeElement', 'link-370');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-2246" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2246', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1946"></a><tt class="py-lineno">1946</tt>  <tt class="py-line">        <tt id="link-2247" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2247', 'root', 'link-247');">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-2248" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-2248', 'addnext', 'link-2041');">addnext</a></tt><tt class="py-op">(</tt><tt id="link-2249" class="py-name"><a title="lxml.etree.C14NWriterTarget.pi
-lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-2249', 'pi', 'link-2193');">pi</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2250" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2250', '_bytes', 'link-18');">_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="L1948"></a><tt class="py-lineno">1948</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2251" 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-2251', '_writeElement', 'link-370');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-2252" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2252', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1949"></a><tt class="py-lineno">1949</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_addnext_root_pi"></a><div id="ETreeOnlyTestCase.test_addnext_root_pi-def"><a name="L1950"></a><tt class="py-lineno">1950</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="L1951"></a><tt class="py-lineno">1951</tt>  <tt class="py-line">        <tt id="link-2253" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2234', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1953"></a><tt class="py-lineno">1953</tt>  <tt class="py-line">        <tt id="link-2235" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2235', 'SubElement', 'link-112');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-2236" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2236', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1954"></a><tt class="py-lineno">1954</tt>  <tt class="py-line">        <tt id="link-2237" class="py-name"><a title="lxml.etree.C14NWriterTarget.pi
+lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-2237', 'pi', 'link-2190');">pi</a></tt> <tt class="py-op">=</tt> <tt id="link-2238" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2238', 'PI', 'link-518');">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="L1955"></a><tt class="py-lineno">1955</tt>  <tt class="py-line">        <tt id="link-2239" class="py-name"><a title="lxml.etree.C14NWriterTarget.pi
+lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-2239', 'pi', 'link-2190');">pi</a></tt><tt class="py-op">.</tt><tt id="link-2240" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2240', 'tail', 'link-978');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</tt> </tt>
+<a name="L1956"></a><tt class="py-lineno">1956</tt>  <tt class="py-line"> </tt>
+<a name="L1957"></a><tt class="py-lineno">1957</tt>  <tt class="py-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-2241" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2241', '_bytes', 'link-18');">_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="L1958"></a><tt class="py-lineno">1958</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2242" 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-2242', '_writeElement', 'link-367');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-2243" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2243', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1959"></a><tt class="py-lineno">1959</tt>  <tt class="py-line">        <tt id="link-2244" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2244', 'root', 'link-247');">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-2245" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-2245', 'addnext', 'link-2038');">addnext</a></tt><tt class="py-op">(</tt><tt id="link-2246" class="py-name"><a title="lxml.etree.C14NWriterTarget.pi
+lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-2246', 'pi', 'link-2190');">pi</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2247" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2247', '_bytes', 'link-18');">_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="L1961"></a><tt class="py-lineno">1961</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2248" 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-2248', '_writeElement', 'link-367');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-2249" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2249', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1962"></a><tt class="py-lineno">1962</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_addnext_root_pi"></a><div id="ETreeOnlyTestCase.test_addnext_root_pi-def"><a name="L1963"></a><tt class="py-lineno">1963</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="L1964"></a><tt class="py-lineno">1964</tt>  <tt class="py-line">        <tt id="link-2250" 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-2253', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2254" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2250', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2251" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -6646,11 +6642,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2254', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2255" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2251', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2252" 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-2255', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L1952"></a><tt class="py-lineno">1952</tt>  <tt class="py-line">        <tt id="link-2256" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2256', 'PI', 'link-521');">PI</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2257" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2252', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L1965"></a><tt class="py-lineno">1965</tt>  <tt class="py-line">        <tt id="link-2253" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2253', 'PI', 'link-518');">PI</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2254" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -6658,31 +6654,31 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2257', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2258" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2258', 'PI', 'link-521');">PI</a></tt> </tt>
-<a name="L1953"></a><tt class="py-lineno">1953</tt>  <tt class="py-line">        <tt id="link-2259" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2259', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2260" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2254', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2255" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2255', 'PI', 'link-518');">PI</a></tt> </tt>
+<a name="L1966"></a><tt class="py-lineno">1966</tt>  <tt class="py-line">        <tt id="link-2256" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2256', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2257" 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-2260', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1954"></a><tt class="py-lineno">1954</tt>  <tt class="py-line">        <tt id="link-2261" class="py-name"><a title="lxml.etree.C14NWriterTarget.pi
-lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-2261', 'pi', 'link-2193');">pi</a></tt> <tt class="py-op">=</tt> <tt id="link-2262" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2262', 'PI', 'link-521');">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="L1955"></a><tt class="py-lineno">1955</tt>  <tt class="py-line">        <tt id="link-2263" class="py-name"><a title="lxml.etree.C14NWriterTarget.pi
-lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-2263', 'pi', 'link-2193');">pi</a></tt><tt class="py-op">.</tt><tt id="link-2264" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2264', 'tail', 'link-981');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</tt> </tt>
-<a name="L1956"></a><tt class="py-lineno">1956</tt>  <tt class="py-line"> </tt>
-<a name="L1957"></a><tt class="py-lineno">1957</tt>  <tt class="py-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-2265" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2265', '_bytes', 'link-18');">_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="L1958"></a><tt class="py-lineno">1958</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2266" 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-2266', '_writeElement', 'link-370');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-2267" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2267', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1959"></a><tt class="py-lineno">1959</tt>  <tt class="py-line">        <tt id="link-2268" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2268', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-2269" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-2269', 'addnext', 'link-2041');">addnext</a></tt><tt class="py-op">(</tt><tt id="link-2270" class="py-name"><a title="lxml.etree.C14NWriterTarget.pi
-lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-2270', 'pi', 'link-2193');">pi</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2271" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2271', '_bytes', 'link-18');">_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="L1961"></a><tt class="py-lineno">1961</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2272" 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-2272', '_writeElement', 'link-370');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-2273" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2273', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1962"></a><tt class="py-lineno">1962</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_addnext_comment"></a><div id="ETreeOnlyTestCase.test_addnext_comment-def"><a name="L1963"></a><tt class="py-lineno">1963</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="L1964"></a><tt class="py-lineno">1964</tt>  <tt class="py-line">        <tt id="link-2274" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2257', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1967"></a><tt class="py-lineno">1967</tt>  <tt class="py-line">        <tt id="link-2258" class="py-name"><a title="lxml.etree.C14NWriterTarget.pi
+lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-2258', 'pi', 'link-2190');">pi</a></tt> <tt class="py-op">=</tt> <tt id="link-2259" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2259', 'PI', 'link-518');">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="L1968"></a><tt class="py-lineno">1968</tt>  <tt class="py-line">        <tt id="link-2260" class="py-name"><a title="lxml.etree.C14NWriterTarget.pi
+lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-2260', 'pi', 'link-2190');">pi</a></tt><tt class="py-op">.</tt><tt id="link-2261" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2261', 'tail', 'link-978');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</tt> </tt>
+<a name="L1969"></a><tt class="py-lineno">1969</tt>  <tt class="py-line"> </tt>
+<a name="L1970"></a><tt class="py-lineno">1970</tt>  <tt class="py-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-2262" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2262', '_bytes', 'link-18');">_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="L1971"></a><tt class="py-lineno">1971</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2263" 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-2263', '_writeElement', 'link-367');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-2264" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2264', 'root', 'link-247');">root</a></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 id="link-2265" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2265', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-2266" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-2266', 'addnext', 'link-2038');">addnext</a></tt><tt class="py-op">(</tt><tt id="link-2267" class="py-name"><a title="lxml.etree.C14NWriterTarget.pi
+lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-2267', 'pi', 'link-2190');">pi</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 id="link-2268" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2268', '_bytes', 'link-18');">_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="L1974"></a><tt class="py-lineno">1974</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2269" 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-2269', '_writeElement', 'link-367');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-2270" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2270', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1975"></a><tt class="py-lineno">1975</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_addnext_comment"></a><div id="ETreeOnlyTestCase.test_addnext_comment-def"><a name="L1976"></a><tt class="py-lineno">1976</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="L1977"></a><tt class="py-lineno">1977</tt>  <tt class="py-line">        <tt id="link-2271" 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-2274', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2275" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2271', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2272" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -6690,11 +6686,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2275', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2276" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2272', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2273" 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-2276', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L1965"></a><tt class="py-lineno">1965</tt>  <tt class="py-line">        <tt id="link-2277" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2277', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2278" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2273', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L1978"></a><tt class="py-lineno">1978</tt>  <tt class="py-line">        <tt id="link-2274" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2274', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2275" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -6702,8 +6698,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2278', 'etree', 'link-3');">etree</a></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-112');">SubElement</a></tt> </tt>
-<a name="L1966"></a><tt class="py-lineno">1966</tt>  <tt class="py-line">        <tt id="link-2280" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2280', 'Comment', 'link-523');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2281" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2275', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2276" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2276', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
+<a name="L1979"></a><tt class="py-lineno">1979</tt>  <tt class="py-line">        <tt id="link-2277" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2277', 'Comment', 'link-520');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2278" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -6711,32 +6707,32 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2281', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2282" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2282', 'Comment', 'link-523');">Comment</a></tt> </tt>
-<a name="L1967"></a><tt class="py-lineno">1967</tt>  <tt class="py-line">        <tt id="link-2283" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2283', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2284" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2278', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2279" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2279', 'Comment', 'link-520');">Comment</a></tt> </tt>
+<a name="L1980"></a><tt class="py-lineno">1980</tt>  <tt class="py-line">        <tt id="link-2280" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2280', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2281" 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-2284', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1968"></a><tt class="py-lineno">1968</tt>  <tt class="py-line">        <tt id="link-2285" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2285', 'SubElement', 'link-112');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-2286" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2286', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1969"></a><tt class="py-lineno">1969</tt>  <tt class="py-line">        <tt id="link-2287" class="py-name" targets="Method lxml.etree.C14NWriterTarget.comment()=lxml.etree.C14NWriterTarget-class.html#comment,Method lxml.etree.TreeBuilder.comment()=lxml.etree.TreeBuilder-class.html#comment"><a title="lxml.etree.C14NWriterTarget.comment
-lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-2287', 'comment', 'link-2287');">comment</a></tt> <tt class="py-op">=</tt> <tt id="link-2288" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2288', 'Comment', 'link-523');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">'TEXT '</tt><tt class="py-op">)</tt> </tt>
-<a name="L1970"></a><tt class="py-lineno">1970</tt>  <tt class="py-line">        <tt id="link-2289" class="py-name"><a title="lxml.etree.C14NWriterTarget.comment
-lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-2289', 'comment', 'link-2287');">comment</a></tt><tt class="py-op">.</tt><tt id="link-2290" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2290', 'tail', 'link-981');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2291" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2291', '_bytes', 'link-18');">_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="L1973"></a><tt class="py-lineno">1973</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2292" 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-2292', '_writeElement', 'link-370');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-2293" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2293', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1974"></a><tt class="py-lineno">1974</tt>  <tt class="py-line">        <tt id="link-2294" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2294', 'root', 'link-247');">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-2295" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-2295', 'addnext', 'link-2041');">addnext</a></tt><tt class="py-op">(</tt><tt id="link-2296" class="py-name"><a title="lxml.etree.C14NWriterTarget.comment
-lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-2296', 'comment', 'link-2287');">comment</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2297" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2297', '_bytes', 'link-18');">_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="L1976"></a><tt class="py-lineno">1976</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2298" 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-2298', '_writeElement', 'link-370');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-2299" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2299', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1977"></a><tt class="py-lineno">1977</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_addnext_root_comment"></a><div id="ETreeOnlyTestCase.test_addnext_root_comment-def"><a name="L1978"></a><tt class="py-lineno">1978</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="L1979"></a><tt class="py-lineno">1979</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-2281', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1981"></a><tt class="py-lineno">1981</tt>  <tt class="py-line">        <tt id="link-2282" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2282', 'SubElement', 'link-112');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-2283" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2283', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1982"></a><tt class="py-lineno">1982</tt>  <tt class="py-line">        <tt id="link-2284" class="py-name" targets="Method lxml.etree.C14NWriterTarget.comment()=lxml.etree.C14NWriterTarget-class.html#comment,Method lxml.etree.TreeBuilder.comment()=lxml.etree.TreeBuilder-class.html#comment"><a title="lxml.etree.C14NWriterTarget.comment
+lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-2284', 'comment', 'link-2284');">comment</a></tt> <tt class="py-op">=</tt> <tt id="link-2285" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2285', 'Comment', 'link-520');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">'TEXT '</tt><tt class="py-op">)</tt> </tt>
+<a name="L1983"></a><tt class="py-lineno">1983</tt>  <tt class="py-line">        <tt id="link-2286" class="py-name"><a title="lxml.etree.C14NWriterTarget.comment
+lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-2286', 'comment', 'link-2284');">comment</a></tt><tt class="py-op">.</tt><tt id="link-2287" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2287', 'tail', 'link-978');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</tt> </tt>
+<a name="L1984"></a><tt class="py-lineno">1984</tt>  <tt class="py-line"> </tt>
+<a name="L1985"></a><tt class="py-lineno">1985</tt>  <tt class="py-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-2288" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2288', '_bytes', 'link-18');">_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="L1986"></a><tt class="py-lineno">1986</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2289" 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-2289', '_writeElement', 'link-367');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-2290" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2290', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1987"></a><tt class="py-lineno">1987</tt>  <tt class="py-line">        <tt id="link-2291" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2291', 'root', 'link-247');">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-2292" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-2292', 'addnext', 'link-2038');">addnext</a></tt><tt class="py-op">(</tt><tt id="link-2293" class="py-name"><a title="lxml.etree.C14NWriterTarget.comment
+lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-2293', 'comment', 'link-2284');">comment</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2294" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2294', '_bytes', 'link-18');">_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="L1989"></a><tt class="py-lineno">1989</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2295" 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-2295', '_writeElement', 'link-367');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-2296" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2296', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1990"></a><tt class="py-lineno">1990</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_addnext_root_comment"></a><div id="ETreeOnlyTestCase.test_addnext_root_comment-def"><a name="L1991"></a><tt class="py-lineno">1991</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="L1992"></a><tt class="py-lineno">1992</tt>  <tt class="py-line">        <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-2300', 'Element', 'link-69');">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-2297', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2298" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -6744,11 +6740,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2301', 'etree', 'link-3');">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-2298', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2299" 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-69');">Element</a></tt> </tt>
-<a name="L1980"></a><tt class="py-lineno">1980</tt>  <tt class="py-line">        <tt id="link-2303" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2303', 'Comment', 'link-523');">Comment</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-2299', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L1993"></a><tt class="py-lineno">1993</tt>  <tt class="py-line">        <tt id="link-2300" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2300', 'Comment', 'link-520');">Comment</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
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -6756,31 +6752,31 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2304', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2305" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2305', 'Comment', 'link-523');">Comment</a></tt> </tt>
-<a name="L1981"></a><tt class="py-lineno">1981</tt>  <tt class="py-line">        <tt id="link-2306" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2306', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2307" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2301', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2302" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2302', 'Comment', 'link-520');">Comment</a></tt> </tt>
+<a name="L1994"></a><tt class="py-lineno">1994</tt>  <tt class="py-line">        <tt id="link-2303" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2303', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2304" 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-2307', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1982"></a><tt class="py-lineno">1982</tt>  <tt class="py-line">        <tt id="link-2308" class="py-name"><a title="lxml.etree.C14NWriterTarget.comment
-lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-2308', 'comment', 'link-2287');">comment</a></tt> <tt class="py-op">=</tt> <tt id="link-2309" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2309', 'Comment', 'link-523');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">'TEXT '</tt><tt class="py-op">)</tt> </tt>
-<a name="L1983"></a><tt class="py-lineno">1983</tt>  <tt class="py-line">        <tt id="link-2310" class="py-name"><a title="lxml.etree.C14NWriterTarget.comment
-lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-2310', 'comment', 'link-2287');">comment</a></tt><tt class="py-op">.</tt><tt id="link-2311" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2311', 'tail', 'link-981');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</tt> </tt>
-<a name="L1984"></a><tt class="py-lineno">1984</tt>  <tt class="py-line"> </tt>
-<a name="L1985"></a><tt class="py-lineno">1985</tt>  <tt class="py-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-2312" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2312', '_bytes', 'link-18');">_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="L1986"></a><tt class="py-lineno">1986</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2313" 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-2313', '_writeElement', 'link-370');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-2314" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2314', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1987"></a><tt class="py-lineno">1987</tt>  <tt class="py-line">        <tt id="link-2315" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2315', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-2316" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-2316', 'addnext', 'link-2041');">addnext</a></tt><tt class="py-op">(</tt><tt id="link-2317" class="py-name"><a title="lxml.etree.C14NWriterTarget.comment
-lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-2317', 'comment', 'link-2287');">comment</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2318" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2318', '_bytes', 'link-18');">_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="L1989"></a><tt class="py-lineno">1989</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2319" 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-2319', '_writeElement', 'link-370');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-2320" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2320', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1990"></a><tt class="py-lineno">1990</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_addprevious_comment"></a><div id="ETreeOnlyTestCase.test_addprevious_comment-def"><a name="L1991"></a><tt class="py-lineno">1991</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="L1992"></a><tt class="py-lineno">1992</tt>  <tt class="py-line">        <tt id="link-2321" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2304', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1995"></a><tt class="py-lineno">1995</tt>  <tt class="py-line">        <tt id="link-2305" class="py-name"><a title="lxml.etree.C14NWriterTarget.comment
+lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-2305', 'comment', 'link-2284');">comment</a></tt> <tt class="py-op">=</tt> <tt id="link-2306" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2306', 'Comment', 'link-520');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">'TEXT '</tt><tt class="py-op">)</tt> </tt>
+<a name="L1996"></a><tt class="py-lineno">1996</tt>  <tt class="py-line">        <tt id="link-2307" class="py-name"><a title="lxml.etree.C14NWriterTarget.comment
+lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-2307', 'comment', 'link-2284');">comment</a></tt><tt class="py-op">.</tt><tt id="link-2308" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2308', 'tail', 'link-978');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</tt> </tt>
+<a name="L1997"></a><tt class="py-lineno">1997</tt>  <tt class="py-line"> </tt>
+<a name="L1998"></a><tt class="py-lineno">1998</tt>  <tt class="py-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-2309" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2309', '_bytes', 'link-18');">_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="L1999"></a><tt class="py-lineno">1999</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2310" 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-2310', '_writeElement', 'link-367');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-2311" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2311', 'root', 'link-247');">root</a></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 id="link-2312" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2312', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-2313" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-2313', 'addnext', 'link-2038');">addnext</a></tt><tt class="py-op">(</tt><tt id="link-2314" class="py-name"><a title="lxml.etree.C14NWriterTarget.comment
+lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-2314', 'comment', 'link-2284');">comment</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2001"></a><tt class="py-lineno">2001</tt>  <tt class="py-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-2315" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2315', '_bytes', 'link-18');">_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="L2002"></a><tt class="py-lineno">2002</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2316" 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-2316', '_writeElement', 'link-367');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-2317" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2317', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2003"></a><tt class="py-lineno">2003</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_addprevious_comment"></a><div id="ETreeOnlyTestCase.test_addprevious_comment-def"><a name="L2004"></a><tt class="py-lineno">2004</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="L2005"></a><tt class="py-lineno">2005</tt>  <tt class="py-line">        <tt id="link-2318" 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-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2322" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2318', 'Element', 'link-69');">Element</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.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -6788,11 +6784,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2322', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2323" 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-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2320" 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-2323', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L1993"></a><tt class="py-lineno">1993</tt>  <tt class="py-line">        <tt id="link-2324" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2324', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2325" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2320', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L2006"></a><tt class="py-lineno">2006</tt>  <tt class="py-line">        <tt id="link-2321" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2321', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2322" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -6800,8 +6796,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2325', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2326" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2326', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
-<a name="L1994"></a><tt class="py-lineno">1994</tt>  <tt class="py-line">        <tt id="link-2327" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2327', 'Comment', 'link-523');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2328" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2322', 'etree', 'link-3');">etree</a></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-112');">SubElement</a></tt> </tt>
+<a name="L2007"></a><tt class="py-lineno">2007</tt>  <tt class="py-line">        <tt id="link-2324" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2324', 'Comment', 'link-520');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2325" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -6809,32 +6805,32 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2328', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2329" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2329', 'Comment', 'link-523');">Comment</a></tt> </tt>
-<a name="L1995"></a><tt class="py-lineno">1995</tt>  <tt class="py-line">        <tt id="link-2330" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2330', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2331" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2325', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2326" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2326', 'Comment', 'link-520');">Comment</a></tt> </tt>
+<a name="L2008"></a><tt class="py-lineno">2008</tt>  <tt class="py-line">        <tt id="link-2327" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2327', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2328" 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-2331', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1996"></a><tt class="py-lineno">1996</tt>  <tt class="py-line">        <tt id="link-2332" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2332', 'SubElement', 'link-112');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-2333" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2333', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1997"></a><tt class="py-lineno">1997</tt>  <tt class="py-line">        <tt id="link-2334" class="py-name"><a title="lxml.etree.C14NWriterTarget.comment
-lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-2334', 'comment', 'link-2287');">comment</a></tt> <tt class="py-op">=</tt> <tt id="link-2335" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2335', 'Comment', 'link-523');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">'TEXT '</tt><tt class="py-op">)</tt> </tt>
-<a name="L1998"></a><tt class="py-lineno">1998</tt>  <tt class="py-line">        <tt id="link-2336" class="py-name"><a title="lxml.etree.C14NWriterTarget.comment
-lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-2336', 'comment', 'link-2287');">comment</a></tt><tt class="py-op">.</tt><tt id="link-2337" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2337', 'tail', 'link-981');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</tt> </tt>
-<a name="L1999"></a><tt class="py-lineno">1999</tt>  <tt class="py-line"> </tt>
-<a name="L2000"></a><tt class="py-lineno">2000</tt>  <tt class="py-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-2338" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2338', '_bytes', 'link-18');">_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="L2001"></a><tt class="py-lineno">2001</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2339" 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-2339', '_writeElement', 'link-370');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-2340" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2340', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2002"></a><tt class="py-lineno">2002</tt>  <tt class="py-line">        <tt id="link-2341" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2341', 'root', 'link-247');">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-2342" class="py-name"><a title="lxml.etree._Element.addprevious" class="py-name" href="#" onclick="return doclink('link-2342', 'addprevious', 'link-2060');">addprevious</a></tt><tt class="py-op">(</tt><tt id="link-2343" class="py-name"><a title="lxml.etree.C14NWriterTarget.comment
-lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-2343', 'comment', 'link-2287');">comment</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2344" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2344', '_bytes', 'link-18');">_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="L2004"></a><tt class="py-lineno">2004</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2345" 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-2345', '_writeElement', 'link-370');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-2346" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2346', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2005"></a><tt class="py-lineno">2005</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_addprevious_root_comment"></a><div id="ETreeOnlyTestCase.test_addprevious_root_comment-def"><a name="L2006"></a><tt class="py-lineno">2006</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="L2007"></a><tt class="py-lineno">2007</tt>  <tt class="py-line">        <tt id="link-2347" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2328', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2009"></a><tt class="py-lineno">2009</tt>  <tt class="py-line">        <tt id="link-2329" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2329', 'SubElement', 'link-112');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-2330" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2330', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2010"></a><tt class="py-lineno">2010</tt>  <tt class="py-line">        <tt id="link-2331" class="py-name"><a title="lxml.etree.C14NWriterTarget.comment
+lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-2331', 'comment', 'link-2284');">comment</a></tt> <tt class="py-op">=</tt> <tt id="link-2332" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2332', 'Comment', 'link-520');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">'TEXT '</tt><tt class="py-op">)</tt> </tt>
+<a name="L2011"></a><tt class="py-lineno">2011</tt>  <tt class="py-line">        <tt id="link-2333" class="py-name"><a title="lxml.etree.C14NWriterTarget.comment
+lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-2333', 'comment', 'link-2284');">comment</a></tt><tt class="py-op">.</tt><tt id="link-2334" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2334', 'tail', 'link-978');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</tt> </tt>
+<a name="L2012"></a><tt class="py-lineno">2012</tt>  <tt class="py-line"> </tt>
+<a name="L2013"></a><tt class="py-lineno">2013</tt>  <tt class="py-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-2335" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2335', '_bytes', 'link-18');">_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="L2014"></a><tt class="py-lineno">2014</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2336" 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-2336', '_writeElement', 'link-367');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-2337" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2337', 'root', 'link-247');">root</a></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 id="link-2338" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2338', 'root', 'link-247');">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-2339" class="py-name"><a title="lxml.etree._Element.addprevious" class="py-name" href="#" onclick="return doclink('link-2339', 'addprevious', 'link-2057');">addprevious</a></tt><tt class="py-op">(</tt><tt id="link-2340" class="py-name"><a title="lxml.etree.C14NWriterTarget.comment
+lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-2340', 'comment', 'link-2284');">comment</a></tt><tt class="py-op">)</tt> </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 id="link-2341" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2341', '_bytes', 'link-18');">_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="L2017"></a><tt class="py-lineno">2017</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2342" 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-2342', '_writeElement', 'link-367');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-2343" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2343', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2018"></a><tt class="py-lineno">2018</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_addprevious_root_comment"></a><div id="ETreeOnlyTestCase.test_addprevious_root_comment-def"><a name="L2019"></a><tt class="py-lineno">2019</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="L2020"></a><tt class="py-lineno">2020</tt>  <tt class="py-line">        <tt id="link-2344" 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-2347', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2348" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2344', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2345" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -6842,11 +6838,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2348', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2349" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2345', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2346" 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-2349', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L2008"></a><tt class="py-lineno">2008</tt>  <tt class="py-line">        <tt id="link-2350" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2350', 'Comment', 'link-523');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2351" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2346', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L2021"></a><tt class="py-lineno">2021</tt>  <tt class="py-line">        <tt id="link-2347" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2347', 'Comment', 'link-520');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2348" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -6854,32 +6850,32 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2351', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2352" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2352', 'Comment', 'link-523');">Comment</a></tt> </tt>
-<a name="L2009"></a><tt class="py-lineno">2009</tt>  <tt class="py-line">        <tt id="link-2353" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2353', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2354" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2348', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2349" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2349', 'Comment', 'link-520');">Comment</a></tt> </tt>
+<a name="L2022"></a><tt class="py-lineno">2022</tt>  <tt class="py-line">        <tt id="link-2350" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2350', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2351" 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-2354', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2010"></a><tt class="py-lineno">2010</tt>  <tt class="py-line">        <tt id="link-2355" class="py-name"><a title="lxml.etree.C14NWriterTarget.comment
-lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-2355', 'comment', 'link-2287');">comment</a></tt> <tt class="py-op">=</tt> <tt id="link-2356" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2356', 'Comment', 'link-523');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">'TEXT '</tt><tt class="py-op">)</tt> </tt>
-<a name="L2011"></a><tt class="py-lineno">2011</tt>  <tt class="py-line">        <tt id="link-2357" class="py-name"><a title="lxml.etree.C14NWriterTarget.comment
-lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-2357', 'comment', 'link-2287');">comment</a></tt><tt class="py-op">.</tt><tt id="link-2358" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2358', 'tail', 'link-981');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</tt> </tt>
-<a name="L2012"></a><tt class="py-lineno">2012</tt>  <tt class="py-line"> </tt>
-<a name="L2013"></a><tt class="py-lineno">2013</tt>  <tt class="py-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-2359" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2359', '_bytes', 'link-18');">_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="L2014"></a><tt class="py-lineno">2014</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2360" 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-2360', '_writeElement', 'link-370');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-2361" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2361', 'root', 'link-247');">root</a></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 id="link-2362" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2362', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-2363" class="py-name"><a title="lxml.etree._Element.addprevious" class="py-name" href="#" onclick="return doclink('link-2363', 'addprevious', 'link-2060');">addprevious</a></tt><tt class="py-op">(</tt><tt id="link-2364" class="py-name"><a title="lxml.etree.C14NWriterTarget.comment
-lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-2364', 'comment', 'link-2287');">comment</a></tt><tt class="py-op">)</tt> </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 id="link-2365" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2365', '_bytes', 'link-18');">_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="L2017"></a><tt class="py-lineno">2017</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2366" 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-2366', '_writeElement', 'link-370');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-2367" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2367', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><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-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="L2020"></a><tt class="py-lineno">2020</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="L2021"></a><tt class="py-lineno">2021</tt>  <tt class="py-line">        <tt id="link-2368" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2351', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2023"></a><tt class="py-lineno">2023</tt>  <tt class="py-line">        <tt id="link-2352" class="py-name"><a title="lxml.etree.C14NWriterTarget.comment
+lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-2352', 'comment', 'link-2284');">comment</a></tt> <tt class="py-op">=</tt> <tt id="link-2353" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2353', 'Comment', 'link-520');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">'TEXT '</tt><tt class="py-op">)</tt> </tt>
+<a name="L2024"></a><tt class="py-lineno">2024</tt>  <tt class="py-line">        <tt id="link-2354" class="py-name"><a title="lxml.etree.C14NWriterTarget.comment
+lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-2354', 'comment', 'link-2284');">comment</a></tt><tt class="py-op">.</tt><tt id="link-2355" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2355', 'tail', 'link-978');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</tt> </tt>
+<a name="L2025"></a><tt class="py-lineno">2025</tt>  <tt class="py-line"> </tt>
+<a name="L2026"></a><tt class="py-lineno">2026</tt>  <tt class="py-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-2356" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2356', '_bytes', 'link-18');">_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="L2027"></a><tt class="py-lineno">2027</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2357" 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-2357', '_writeElement', 'link-367');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-2358" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2358', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2028"></a><tt class="py-lineno">2028</tt>  <tt class="py-line">        <tt id="link-2359" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2359', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-2360" class="py-name"><a title="lxml.etree._Element.addprevious" class="py-name" href="#" onclick="return doclink('link-2360', 'addprevious', 'link-2057');">addprevious</a></tt><tt class="py-op">(</tt><tt id="link-2361" class="py-name"><a title="lxml.etree.C14NWriterTarget.comment
+lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-2361', 'comment', 'link-2284');">comment</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2362" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2362', '_bytes', 'link-18');">_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="L2030"></a><tt class="py-lineno">2030</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2363" 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-2363', '_writeElement', 'link-367');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-2364" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2364', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2031"></a><tt class="py-lineno">2031</tt>  <tt class="py-line"> </tt>
+<a name="L2032"></a><tt class="py-lineno">2032</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="L2033"></a><tt class="py-lineno">2033</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="L2034"></a><tt class="py-lineno">2034</tt>  <tt class="py-line">        <tt id="link-2365" 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-2368', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2369" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2365', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2366" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -6887,33 +6883,33 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2369', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2370" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2366', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2367" 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-2370', 'XML', 'link-234');">XML</a></tt> </tt>
-<a name="L2022"></a><tt class="py-lineno">2022</tt>  <tt class="py-line">         </tt>
-<a name="L2023"></a><tt class="py-lineno">2023</tt>  <tt class="py-line">        <tt id="link-2371" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2371', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2372" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2367', 'XML', 'link-234');">XML</a></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 id="link-2368" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2368', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2369" 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-2372', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2373" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2373', '_bytes', 'link-18');">_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="L2024"></a><tt class="py-lineno">2024</tt>  <tt class="py-line">        <tt id="link-2374" class="py-name"><a title="lxml.etree._Attrib.values
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2369', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2370" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2370', '_bytes', 'link-18');">_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="L2037"></a><tt class="py-lineno">2037</tt>  <tt class="py-line">        <tt id="link-2371" 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-2374', 'values', 'link-303');">values</a></tt> <tt class="py-op">=</tt> <tt id="link-2375" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2375', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-2376" class="py-name"><a title="lxml.etree._Attrib.values
+lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-2371', 'values', 'link-303');">values</a></tt> <tt class="py-op">=</tt> <tt id="link-2372" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2372', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-2373" 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-2376', 'values', 'link-303');">values</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L2025"></a><tt class="py-lineno">2025</tt>  <tt class="py-line">        <tt id="link-2377" class="py-name"><a title="lxml.etree._Attrib.values
+lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-2373', 'values', 'link-303');">values</a></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 id="link-2374" 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-2377', 'values', 'link-303');">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="L2026"></a><tt class="py-lineno">2026</tt>  <tt class="py-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-2378" class="py-name"><a title="lxml.etree._Attrib.values
+lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-2374', 'values', 'link-303');">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="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 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-2375" 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-2378', 'values', 'link-303');">values</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2027"></a><tt class="py-lineno">2027</tt>  <tt class="py-line"> </tt>
-<a name="L2028"></a><tt class="py-lineno">2028</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="L2029"></a><tt class="py-lineno">2029</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="L2030"></a><tt class="py-lineno">2030</tt>  <tt class="py-line">        <tt id="link-2379" class="py-name"><a title="lxml.etree.Element
+lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-2375', 'values', 'link-303');">values</a></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="L2041"></a><tt class="py-lineno">2041</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="L2042"></a><tt class="py-lineno">2042</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="L2043"></a><tt class="py-lineno">2043</tt>  <tt class="py-line">        <tt id="link-2376" 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-2379', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2380" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2376', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2377" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -6921,11 +6917,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2380', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2381" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2377', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2378" 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-2381', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L2031"></a><tt class="py-lineno">2031</tt>  <tt class="py-line">        <tt id="link-2382" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2382', 'Comment', 'link-523');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2383" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2378', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L2044"></a><tt class="py-lineno">2044</tt>  <tt class="py-line">        <tt id="link-2379" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2379', 'Comment', 'link-520');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2380" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -6933,23 +6929,23 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2383', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2384" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2384', 'Comment', 'link-523');">Comment</a></tt> </tt>
-<a name="L2032"></a><tt class="py-lineno">2032</tt>  <tt class="py-line"> </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-2385" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2380', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2381" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2381', 'Comment', 'link-520');">Comment</a></tt> </tt>
+<a name="L2045"></a><tt class="py-lineno">2045</tt>  <tt class="py-line"> </tt>
+<a name="L2046"></a><tt class="py-lineno">2046</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2382" 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-2385', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</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">a</tt><tt class="py-op">.</tt><tt id="link-2386" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2386', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt id="link-2387" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2387', 'Comment', 'link-523');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-op">)</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2036"></a><tt class="py-lineno">2036</tt>  <tt class="py-line">            <tt id="link-2388" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2388', '_bytes', 'link-18');">_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="L2037"></a><tt class="py-lineno">2037</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2389" 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-2389', '_writeElement', 'link-370');">_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="L2038"></a><tt class="py-lineno">2038</tt>  <tt class="py-line"> </tt>
-<a name="L2039"></a><tt class="py-lineno">2039</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="L2040"></a><tt class="py-lineno">2040</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="L2041"></a><tt class="py-lineno">2041</tt>  <tt class="py-line">        <tt id="link-2390" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2382', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</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">a</tt><tt class="py-op">.</tt><tt id="link-2383" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2383', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt id="link-2384" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2384', 'Comment', 'link-520');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-op">)</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 id="link-2385" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2385', '_bytes', 'link-18');">_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="L2050"></a><tt class="py-lineno">2050</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2386" 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-2386', '_writeElement', 'link-367');">_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="L2051"></a><tt class="py-lineno">2051</tt>  <tt class="py-line"> </tt>
+<a name="L2052"></a><tt class="py-lineno">2052</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="L2053"></a><tt class="py-lineno">2053</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="L2054"></a><tt class="py-lineno">2054</tt>  <tt class="py-line">        <tt id="link-2387" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2390', 'ElementTree', 'link-573');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2391" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2387', 'ElementTree', 'link-570');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2388" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -6957,11 +6953,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2391', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2392" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2388', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2389" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2392', 'ElementTree', 'link-573');">ElementTree</a></tt> </tt>
-<a name="L2042"></a><tt class="py-lineno">2042</tt>  <tt class="py-line">        <tt id="link-2393" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2393', 'tostring', 'link-237');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2394" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2389', 'ElementTree', 'link-570');">ElementTree</a></tt> </tt>
+<a name="L2055"></a><tt class="py-lineno">2055</tt>  <tt class="py-line">        <tt id="link-2390" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2390', 'tostring', 'link-237');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2391" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -6969,32 +6965,32 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2394', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2395" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2395', 'tostring', 'link-237');">tostring</a></tt> </tt>
-<a name="L2043"></a><tt class="py-lineno">2043</tt>  <tt class="py-line"> </tt>
-<a name="L2044"></a><tt class="py-lineno">2044</tt>  <tt class="py-line">        <tt id="link-2396" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2396', 'xml', 'link-361');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-2397" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2397', '_bytes', 'link-18');">_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="L2045"></a><tt class="py-lineno">2045</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-2398" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2398', 'xml', 'link-361');">xml</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">doc</tt> <tt class="py-op">=</tt> <tt id="link-2399" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2391', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2392" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2392', 'tostring', 'link-237');">tostring</a></tt> </tt>
+<a name="L2056"></a><tt class="py-lineno">2056</tt>  <tt class="py-line"> </tt>
+<a name="L2057"></a><tt class="py-lineno">2057</tt>  <tt class="py-line">        <tt id="link-2393" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2393', 'xml', 'link-358');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-2394" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2394', '_bytes', 'link-18');">_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="L2058"></a><tt class="py-lineno">2058</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-2395" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2395', 'xml', 'link-358');">xml</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2059"></a><tt class="py-lineno">2059</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-2396" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2399', 'ElementTree', 'link-573');">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="L2047"></a><tt class="py-lineno">2047</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-2400" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2400', 'getroot', 'link-805');">getroot</a></tt><tt class="py-op">(</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-string">''</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 class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2401" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2396', 'ElementTree', 'link-570');">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="L2060"></a><tt class="py-lineno">2060</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-2397" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2397', 'getroot', 'link-802');">getroot</a></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-string">''</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">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-2398" 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-2401', 'text', 'link-205');">text</a></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 id="link-2402" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2402', 'xml', 'link-361');">xml</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L2053"></a><tt class="py-lineno">2053</tt>  <tt class="py-line">            <tt id="link-2403" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2403', 'tostring', 'link-237');">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="L2054"></a><tt class="py-lineno">2054</tt>  <tt class="py-line"> </tt>
-<a name="L2055"></a><tt class="py-lineno">2055</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="L2056"></a><tt class="py-lineno">2056</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="L2057"></a><tt class="py-lineno">2057</tt>  <tt class="py-line">        <tt id="link-2404" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2398', 'text', 'link-205');">text</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2065"></a><tt class="py-lineno">2065</tt>  <tt class="py-line">            <tt id="link-2399" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2399', 'xml', 'link-358');">xml</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L2066"></a><tt class="py-lineno">2066</tt>  <tt class="py-line">            <tt id="link-2400" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2400', 'tostring', 'link-237');">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="L2067"></a><tt class="py-lineno">2067</tt>  <tt class="py-line"> </tt>
+<a name="L2068"></a><tt class="py-lineno">2068</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="L2069"></a><tt class="py-lineno">2069</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="L2070"></a><tt class="py-lineno">2070</tt>  <tt class="py-line">        <tt id="link-2401" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2404', 'ElementTree', 'link-573');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2405" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2401', 'ElementTree', 'link-570');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2402" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -7002,29 +6998,29 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2405', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2406" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2402', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2403" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2406', 'ElementTree', 'link-573');">ElementTree</a></tt> </tt>
-<a name="L2058"></a><tt class="py-lineno">2058</tt>  <tt class="py-line">         </tt>
-<a name="L2059"></a><tt class="py-lineno">2059</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="L2060"></a><tt class="py-lineno">2060</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-2407" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2403', 'ElementTree', 'link-570');">ElementTree</a></tt> </tt>
+<a name="L2071"></a><tt class="py-lineno">2071</tt>  <tt class="py-line">         </tt>
+<a name="L2072"></a><tt class="py-lineno">2072</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="L2073"></a><tt class="py-lineno">2073</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-2404" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2407', 'ElementTree', 'link-573');">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="L2061"></a><tt class="py-lineno">2061</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-2408" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2408', 'getroot', 'link-805');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L2062"></a><tt class="py-lineno">2062</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2063"></a><tt class="py-lineno">2063</tt>  <tt class="py-line">            <tt class="py-string">' hoi '</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">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-2409" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2404', 'ElementTree', 'link-570');">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="L2074"></a><tt class="py-lineno">2074</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-2405" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2405', 'getroot', 'link-802');">getroot</a></tt><tt class="py-op">(</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2076"></a><tt class="py-lineno">2076</tt>  <tt class="py-line">            <tt class="py-string">' hoi '</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 class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2406" 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-2409', 'text', 'link-205');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2065"></a><tt class="py-lineno">2065</tt>  <tt class="py-line"> </tt>
-<a name="L2066"></a><tt class="py-lineno">2066</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="L2067"></a><tt class="py-lineno">2067</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="L2068"></a><tt class="py-lineno">2068</tt>  <tt class="py-line">        <tt id="link-2410" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2406', 'text', 'link-205');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2078"></a><tt class="py-lineno">2078</tt>  <tt class="py-line"> </tt>
+<a name="L2079"></a><tt class="py-lineno">2079</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="L2080"></a><tt class="py-lineno">2080</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="L2081"></a><tt class="py-lineno">2081</tt>  <tt class="py-line">        <tt id="link-2407" 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-2410', 'Element', 'link-69');">Element</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
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2407', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2408" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -7032,11 +7028,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2411', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2412" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2408', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2409" 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-2412', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L2069"></a><tt class="py-lineno">2069</tt>  <tt class="py-line">        <tt id="link-2413" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2413', 'Comment', 'link-523');">Comment</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
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2409', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L2082"></a><tt class="py-lineno">2082</tt>  <tt class="py-line">        <tt id="link-2410" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2410', 'Comment', 'link-520');">Comment</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.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -7044,23 +7040,23 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2414', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2415" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2415', 'Comment', 'link-523');">Comment</a></tt> </tt>
-<a name="L2070"></a><tt class="py-lineno">2070</tt>  <tt class="py-line"> </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-2416" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2416', 'Comment', 'link-523');">Comment</a></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">el</tt> <tt class="py-op">=</tt> <tt id="link-2417" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2411', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2412" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2412', 'Comment', 'link-520');">Comment</a></tt> </tt>
+<a name="L2083"></a><tt class="py-lineno">2083</tt>  <tt class="py-line"> </tt>
+<a name="L2084"></a><tt class="py-lineno">2084</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2413" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2413', 'Comment', 'link-520');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L2085"></a><tt class="py-lineno">2085</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-2414" 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-2417', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'myel'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2073"></a><tt class="py-lineno">2073</tt>  <tt class="py-line"> </tt>
-<a name="L2074"></a><tt class="py-lineno">2074</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-2418" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2418', 'append', 'link-726');">append</a></tt><tt class="py-op">,</tt> <tt class="py-name">el</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">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-2419" class="py-name" targets="Method lxml.etree._Element.insert()=lxml.etree._Element-class.html#insert"><a title="lxml.etree._Element.insert" class="py-name" href="#" onclick="return doclink('link-2419', 'insert', 'link-2419');">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="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">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-2420" class="py-name"><a title="lxml.etree._Element.set
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2414', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'myel'</tt><tt class="py-op">)</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">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-2415" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2415', 'append', 'link-322');">append</a></tt><tt class="py-op">,</tt> <tt class="py-name">el</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">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-2416" class="py-name" targets="Method lxml.etree._Element.insert()=lxml.etree._Element-class.html#insert"><a title="lxml.etree._Element.insert" class="py-name" href="#" onclick="return doclink('link-2416', 'insert', 'link-2416');">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="L2089"></a><tt class="py-lineno">2089</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-2417" class="py-name"><a title="lxml.etree._Element.set
 lxml.etree._XSLTProcessingInstruction.set
 lxml.html.HtmlElement.set
-lxml.html.HtmlMixin.set" class="py-name" href="#" onclick="return doclink('link-2420', 'set', 'link-268');">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="L2077"></a><tt class="py-lineno">2077</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_comment_immutable_attrib"></a><div id="ETreeOnlyTestCase.test_comment_immutable_attrib-def"><a name="L2078"></a><tt class="py-lineno">2078</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="L2079"></a><tt class="py-lineno">2079</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-2421" class="py-name"><a title="lxml.etree
+lxml.html.HtmlMixin.set" class="py-name" href="#" onclick="return doclink('link-2417', 'set', 'link-268');">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="L2090"></a><tt class="py-lineno">2090</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_comment_immutable_attrib"></a><div id="ETreeOnlyTestCase.test_comment_immutable_attrib-def"><a name="L2091"></a><tt class="py-lineno">2091</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="L2092"></a><tt class="py-lineno">2092</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-2418" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -7068,144 +7064,144 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2421', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2422" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2422', 'Comment', 'link-523');">Comment</a></tt><tt class="py-op">(</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">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-2423" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2418', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2419" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2419', 'Comment', 'link-520');">Comment</a></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 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-2420" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2423', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2081"></a><tt class="py-lineno">2081</tt>  <tt class="py-line"> </tt>
-<a name="L2082"></a><tt class="py-lineno">2082</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertFalse</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2424" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2420', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2094"></a><tt class="py-lineno">2094</tt>  <tt class="py-line"> </tt>
+<a name="L2095"></a><tt class="py-lineno">2095</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertFalse</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2421" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2424', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2425" 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.Classes.__contains__()=lxml.html.Classes-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-2421', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2422" 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.Classes.__contains__()=lxml.html.Classes-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.Classes.__contains__
 lxml.html.FieldsDict.__contains__
-lxml.html.InputGetter.__contains__" class="py-name" href="#" onclick="return doclink('link-2425', '__contains__', 'link-2425');">__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="L2083"></a><tt class="py-lineno">2083</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertFalse</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-2426" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.html.InputGetter.__contains__" class="py-name" href="#" onclick="return doclink('link-2422', '__contains__', 'link-2422');">__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="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">assertFalse</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-2423" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2426', 'attrib', 'link-251');">attrib</a></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">assertFalse</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-2427" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2423', 'attrib', 'link-251');">attrib</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertFalse</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-2424" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2427', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2428" class="py-name"><a title="lxml.etree._Attrib.keys
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2424', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2425" 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-2428', 'keys', 'link-302');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2085"></a><tt class="py-lineno">2085</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertFalse</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-2429" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-2425', 'keys', 'link-302');">keys</a></tt><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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertFalse</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-2426" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2429', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2430" class="py-name"><a title="lxml.etree._Attrib.values
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2426', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2427" 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-2430', 'values', 'link-303');">values</a></tt><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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertFalse</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-2431" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-2427', 'values', 'link-303');">values</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2099"></a><tt class="py-lineno">2099</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertFalse</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-2428" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2431', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2432" class="py-name"><a title="lxml.etree._Attrib.items
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2428', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2429" 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-2432', 'items', 'link-304');">items</a></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>
-<a name="L2088"></a><tt class="py-lineno">2088</tt>  <tt class="py-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-2433" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-2429', 'items', 'link-304');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2100"></a><tt class="py-lineno">2100</tt>  <tt class="py-line"> </tt>
+<a name="L2101"></a><tt class="py-lineno">2101</tt>  <tt class="py-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-2430" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2433', 'attrib', 'link-251');">attrib</a></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">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-2434" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2430', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2102"></a><tt class="py-lineno">2102</tt>  <tt class="py-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-2431" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2434', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2435" class="py-name"><a title="lxml.etree._Attrib.keys
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2431', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2432" 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-2435', 'keys', 'link-302');">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="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 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-2436" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-2432', 'keys', 'link-302');">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="L2103"></a><tt class="py-lineno">2103</tt>  <tt class="py-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-2433" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2436', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2437" class="py-name"><a title="lxml.etree._Attrib.items
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2433', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2434" 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-2437', 'items', 'link-304');">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="L2091"></a><tt class="py-lineno">2091</tt>  <tt class="py-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-2438" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-2434', 'items', 'link-304');">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="L2104"></a><tt class="py-lineno">2104</tt>  <tt class="py-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-2435" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2438', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2439" class="py-name"><a title="lxml.etree._Attrib.values
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2435', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2436" 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-2439', 'values', 'link-303');">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="L2092"></a><tt class="py-lineno">2092</tt>  <tt class="py-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-2440" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-2436', 'values', 'link-303');">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="L2105"></a><tt class="py-lineno">2105</tt>  <tt class="py-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-2437" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2440', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2441" 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-2441', 'iterkeys', 'link-2441');">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="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 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-2442" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2437', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2438" 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-2438', 'iterkeys', 'link-2438');">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="L2106"></a><tt class="py-lineno">2106</tt>  <tt class="py-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-2439" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2442', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2443" 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-2443', 'iteritems', 'link-2443');">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="L2094"></a><tt class="py-lineno">2094</tt>  <tt class="py-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-2444" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2439', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2440" 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-2440', 'iteritems', 'link-2440');">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="L2107"></a><tt class="py-lineno">2107</tt>  <tt class="py-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-2441" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2444', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2445" 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-2445', 'itervalues', 'link-2445');">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="L2095"></a><tt class="py-lineno">2095</tt>  <tt class="py-line"> </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 class="py-string">'HUHU'</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2446" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2441', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2442" 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-2442', 'itervalues', 'link-2442');">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="L2108"></a><tt class="py-lineno">2108</tt>  <tt class="py-line"> </tt>
+<a name="L2109"></a><tt class="py-lineno">2109</tt>  <tt class="py-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-2443" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2446', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2447" 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-2447', 'pop', 'link-2447');">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="L2097"></a><tt class="py-lineno">2097</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-2448" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2443', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2444" 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-2444', 'pop', 'link-2444');">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="L2110"></a><tt class="py-lineno">2110</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-2445" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2448', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2449" class="py-name"><a title="lxml.etree._Attrib.pop" class="py-name" href="#" onclick="return doclink('link-2449', 'pop', 'link-2447');">pop</a></tt><tt class="py-op">,</tt> <tt class="py-string">'nope'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2098"></a><tt class="py-lineno">2098</tt>  <tt class="py-line"> </tt>
-<a name="L2099"></a><tt class="py-lineno">2099</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-2450" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2445', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2446" class="py-name"><a title="lxml.etree._Attrib.pop" class="py-name" href="#" onclick="return doclink('link-2446', 'pop', 'link-2444');">pop</a></tt><tt class="py-op">,</tt> <tt class="py-string">'nope'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2111"></a><tt class="py-lineno">2111</tt>  <tt class="py-line"> </tt>
+<a name="L2112"></a><tt class="py-lineno">2112</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-2447" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2450', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2451" class="py-name"><a title="lxml.etree._Attrib.__getitem__
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2447', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2448" 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-2451', '__getitem__', 'link-775');">__getitem__</a></tt><tt class="py-op">,</tt> <tt class="py-string">'only'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2100"></a><tt class="py-lineno">2100</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-2452" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.objectify.ObjectifiedElement.__getitem__" class="py-name" href="#" onclick="return doclink('link-2448', '__getitem__', 'link-772');">__getitem__</a></tt><tt class="py-op">,</tt> <tt class="py-string">'only'</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">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-2449" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2452', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2453" class="py-name"><a title="lxml.etree._Attrib.__getitem__
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2449', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2450" 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-2453', '__getitem__', 'link-775');">__getitem__</a></tt><tt class="py-op">,</tt> <tt class="py-string">'names'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2101"></a><tt class="py-lineno">2101</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-2454" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.objectify.ObjectifiedElement.__getitem__" class="py-name" href="#" onclick="return doclink('link-2450', '__getitem__', 'link-772');">__getitem__</a></tt><tt class="py-op">,</tt> <tt class="py-string">'names'</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">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-2451" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2454', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2455" class="py-name"><a title="lxml.etree._Attrib.__getitem__
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2451', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2452" 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-2455', '__getitem__', 'link-775');">__getitem__</a></tt><tt class="py-op">,</tt> <tt class="py-string">'nope'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2102"></a><tt class="py-lineno">2102</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-2456" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.objectify.ObjectifiedElement.__getitem__" class="py-name" href="#" onclick="return doclink('link-2452', '__getitem__', 'link-772');">__getitem__</a></tt><tt class="py-op">,</tt> <tt class="py-string">'nope'</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">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-2453" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2456', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2457" class="py-name"><a title="lxml.etree._Attrib.__setitem__
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2453', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2454" 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-2457', '__setitem__', 'link-1990');">__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="L2103"></a><tt class="py-lineno">2103</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-2458" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.objectify.ObjectifiedElement.__setitem__" class="py-name" href="#" onclick="return doclink('link-2454', '__setitem__', 'link-1987');">__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="L2116"></a><tt class="py-lineno">2116</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-2455" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2458', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2459" 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-2455', 'attrib', 'link-251');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2456" 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-2459', '__delitem__', 'link-2459');">__delitem__</a></tt><tt class="py-op">,</tt> <tt class="py-string">'nope'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2104"></a><tt class="py-lineno">2104</tt>  <tt class="py-line"> </tt>
-<a name="L2105"></a><tt class="py-lineno">2105</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="L2106"></a><tt class="py-lineno">2106</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="L2107"></a><tt class="py-lineno">2107</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-2460" class="py-name"><a title="lxml.etree
+lxml.objectify.ObjectifiedElement.__delitem__" class="py-name" href="#" onclick="return doclink('link-2456', '__delitem__', 'link-2456');">__delitem__</a></tt><tt class="py-op">,</tt> <tt class="py-string">'nope'</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="L2118"></a><tt class="py-lineno">2118</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="L2119"></a><tt class="py-lineno">2119</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="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">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-2457" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -7213,13 +7209,13 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2460', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2461" 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-2461', 'dump', 'link-2461');">dump</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2108"></a><tt class="py-lineno">2108</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_prefix"></a><div id="ETreeOnlyTestCase.test_prefix-def"><a name="L2109"></a><tt class="py-lineno">2109</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="L2110"></a><tt class="py-lineno">2110</tt>  <tt class="py-line">        <tt id="link-2462" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2457', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2458" 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-2458', 'dump', 'link-2458');">dump</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2121"></a><tt class="py-lineno">2121</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_prefix"></a><div id="ETreeOnlyTestCase.test_prefix-def"><a name="L2122"></a><tt class="py-lineno">2122</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="L2123"></a><tt class="py-lineno">2123</tt>  <tt class="py-line">        <tt id="link-2459" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2462', 'ElementTree', 'link-573');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2463" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2459', 'ElementTree', 'link-570');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2460" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -7227,26 +7223,26 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2463', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2464" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2460', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2461" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2464', 'ElementTree', 'link-573');">ElementTree</a></tt> </tt>
-<a name="L2111"></a><tt class="py-lineno">2111</tt>  <tt class="py-line">         </tt>
-<a name="L2112"></a><tt class="py-lineno">2112</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="L2113"></a><tt class="py-lineno">2113</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-2465" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2461', 'ElementTree', 'link-570');">ElementTree</a></tt> </tt>
+<a name="L2124"></a><tt class="py-lineno">2124</tt>  <tt class="py-line">         </tt>
+<a name="L2125"></a><tt class="py-lineno">2125</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="L2126"></a><tt class="py-lineno">2126</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-2462" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2465', 'ElementTree', 'link-573');">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="L2114"></a><tt class="py-lineno">2114</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-2466" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2466', 'getroot', 'link-805');">getroot</a></tt><tt class="py-op">(</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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">None</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">a</tt><tt class="py-op">.</tt><tt id="link-2467" 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-2467', 'prefix', 'link-2467');">prefix</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2118"></a><tt class="py-lineno">2118</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2119"></a><tt class="py-lineno">2119</tt>  <tt class="py-line">            <tt class="py-string">'foo'</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">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-2468" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2468', 'prefix', 'link-2467');">prefix</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2121"></a><tt class="py-lineno">2121</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_prefix_default_ns"></a><div id="ETreeOnlyTestCase.test_prefix_default_ns-def"><a name="L2122"></a><tt class="py-lineno">2122</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="L2123"></a><tt class="py-lineno">2123</tt>  <tt class="py-line">        <tt id="link-2469" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2462', 'ElementTree', 'link-570');">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="L2127"></a><tt class="py-lineno">2127</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-2463" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2463', 'getroot', 'link-802');">getroot</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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">None</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">a</tt><tt class="py-op">.</tt><tt id="link-2464" 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-2464', 'prefix', 'link-2464');">prefix</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2132"></a><tt class="py-lineno">2132</tt>  <tt class="py-line">            <tt class="py-string">'foo'</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">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-2465" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2465', 'prefix', 'link-2464');">prefix</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2134"></a><tt class="py-lineno">2134</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_prefix_default_ns"></a><div id="ETreeOnlyTestCase.test_prefix_default_ns-def"><a name="L2135"></a><tt class="py-lineno">2135</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="L2136"></a><tt class="py-lineno">2136</tt>  <tt class="py-line">        <tt id="link-2466" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2469', 'ElementTree', 'link-573');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2470" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2466', 'ElementTree', 'link-570');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2467" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -7254,27 +7250,27 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2470', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2471" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2467', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2468" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2471', 'ElementTree', 'link-573');">ElementTree</a></tt> </tt>
-<a name="L2124"></a><tt class="py-lineno">2124</tt>  <tt class="py-line">         </tt>
-<a name="L2125"></a><tt class="py-lineno">2125</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="L2126"></a><tt class="py-lineno">2126</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-2472" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2468', 'ElementTree', 'link-570');">ElementTree</a></tt> </tt>
+<a name="L2137"></a><tt class="py-lineno">2137</tt>  <tt class="py-line">         </tt>
+<a name="L2138"></a><tt class="py-lineno">2138</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="L2139"></a><tt class="py-lineno">2139</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-2469" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2472', 'ElementTree', 'link-573');">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="L2127"></a><tt class="py-lineno">2127</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-2473" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2473', 'getroot', 'link-805');">getroot</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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">None</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">a</tt><tt class="py-op">.</tt><tt id="link-2474" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2474', 'prefix', 'link-2467');">prefix</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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">None</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">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-2475" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2475', 'prefix', 'link-2467');">prefix</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2134"></a><tt class="py-lineno">2134</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_getparent"></a><div id="ETreeOnlyTestCase.test_getparent-def"><a name="L2135"></a><tt class="py-lineno">2135</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="L2136"></a><tt class="py-lineno">2136</tt>  <tt class="py-line">        <tt id="link-2476" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2469', 'ElementTree', 'link-570');">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="L2140"></a><tt class="py-lineno">2140</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-2470" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2470', 'getroot', 'link-802');">getroot</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L2143"></a><tt class="py-lineno">2143</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2471" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2471', 'prefix', 'link-2464');">prefix</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2145"></a><tt class="py-lineno">2145</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </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 class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2472" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2472', 'prefix', 'link-2464');">prefix</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2147"></a><tt class="py-lineno">2147</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_getparent"></a><div id="ETreeOnlyTestCase.test_getparent-def"><a name="L2148"></a><tt class="py-lineno">2148</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="L2149"></a><tt class="py-lineno">2149</tt>  <tt class="py-line">        <tt id="link-2473" 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-2476', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2477" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2473', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2474" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -7282,11 +7278,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2477', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2478" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2474', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2475" 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-2478', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L2137"></a><tt class="py-lineno">2137</tt>  <tt class="py-line">        <tt id="link-2479" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2479', 'SubElement', 'link-112');">SubElement</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
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2475', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L2150"></a><tt class="py-lineno">2150</tt>  <tt class="py-line">        <tt id="link-2476" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2476', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2477" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -7294,43 +7290,43 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2480', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2481" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2481', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
-<a name="L2138"></a><tt class="py-lineno">2138</tt>  <tt class="py-line"> </tt>
-<a name="L2139"></a><tt class="py-lineno">2139</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2482" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2477', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2478" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2478', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
+<a name="L2151"></a><tt class="py-lineno">2151</tt>  <tt class="py-line"> </tt>
+<a name="L2152"></a><tt class="py-lineno">2152</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2479" 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-2482', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</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">b</tt> <tt class="py-op">=</tt> <tt id="link-2483" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2483', 'SubElement', 'link-112');">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="L2141"></a><tt class="py-lineno">2141</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2484" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2484', 'SubElement', 'link-112');">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="L2142"></a><tt class="py-lineno">2142</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2485" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2485', 'SubElement', 'link-112');">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="L2143"></a><tt class="py-lineno">2143</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L2145"></a><tt class="py-lineno">2145</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2486" 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-2479', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</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">b</tt> <tt class="py-op">=</tt> <tt id="link-2480" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2480', 'SubElement', 'link-112');">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="L2154"></a><tt class="py-lineno">2154</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2481" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2481', 'SubElement', 'link-112');">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="L2155"></a><tt class="py-lineno">2155</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2482" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2482', 'SubElement', 'link-112');">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="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-name">None</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">a</tt><tt class="py-op">.</tt><tt id="link-2483" 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-2486', 'getparent', 'link-2486');">getparent</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2146"></a><tt class="py-lineno">2146</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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">a</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">b</tt><tt class="py-op">.</tt><tt id="link-2487" class="py-name"><a title="lxml.etree._Element.getparent
+lxml.etree._ElementUnicodeResult.getparent" class="py-name" href="#" onclick="return doclink('link-2483', 'getparent', 'link-2483');">getparent</a></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-name">a</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">b</tt><tt class="py-op">.</tt><tt id="link-2484" 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-2487', 'getparent', 'link-2486');">getparent</a></tt><tt class="py-op">(</tt><tt class="py-op">)</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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">b</tt><tt class="py-op">.</tt><tt id="link-2488" class="py-name"><a title="lxml.etree._Element.getparent
+lxml.etree._ElementUnicodeResult.getparent" class="py-name" href="#" onclick="return doclink('link-2484', 'getparent', 'link-2483');">getparent</a></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-name">b</tt><tt class="py-op">.</tt><tt id="link-2485" 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-2488', 'getparent', 'link-2486');">getparent</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2151"></a><tt class="py-lineno">2151</tt>  <tt class="py-line">            <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2489" class="py-name"><a title="lxml.etree._Element.getparent
+lxml.etree._ElementUnicodeResult.getparent" class="py-name" href="#" onclick="return doclink('link-2485', 'getparent', 'link-2483');">getparent</a></tt><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">c</tt><tt class="py-op">.</tt><tt id="link-2486" 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-2489', 'getparent', 'link-2486');">getparent</a></tt><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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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">b</tt><tt class="py-op">,</tt> </tt>
-<a name="L2154"></a><tt class="py-lineno">2154</tt>  <tt class="py-line">            <tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2490" class="py-name"><a title="lxml.etree._Element.getparent
+lxml.etree._ElementUnicodeResult.getparent" class="py-name" href="#" onclick="return doclink('link-2486', 'getparent', 'link-2483');">getparent</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2165"></a><tt class="py-lineno">2165</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2166"></a><tt class="py-lineno">2166</tt>  <tt class="py-line">            <tt class="py-name">b</tt><tt class="py-op">,</tt> </tt>
+<a name="L2167"></a><tt class="py-lineno">2167</tt>  <tt class="py-line">            <tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2487" 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-2490', 'getparent', 'link-2486');">getparent</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2155"></a><tt class="py-lineno">2155</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterchildren"></a><div id="ETreeOnlyTestCase.test_iterchildren-def"><a name="L2156"></a><tt class="py-lineno">2156</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="L2157"></a><tt class="py-lineno">2157</tt>  <tt class="py-line">        <tt id="link-2491" class="py-name"><a title="lxml.etree.XML
+lxml.etree._ElementUnicodeResult.getparent" class="py-name" href="#" onclick="return doclink('link-2487', 'getparent', 'link-2483');">getparent</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2168"></a><tt class="py-lineno">2168</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterchildren"></a><div id="ETreeOnlyTestCase.test_iterchildren-def"><a name="L2169"></a><tt class="py-lineno">2169</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="L2170"></a><tt class="py-lineno">2170</tt>  <tt class="py-line">        <tt id="link-2488" 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-2491', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2492" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2488', 'XML', 'link-234');">XML</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.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -7338,30 +7334,30 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2492', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2493" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2489', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2490" 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-2493', 'XML', 'link-234');">XML</a></tt> </tt>
-<a name="L2158"></a><tt class="py-lineno">2158</tt>  <tt class="py-line">         </tt>
-<a name="L2159"></a><tt class="py-lineno">2159</tt>  <tt class="py-line">        <tt id="link-2494" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2494', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2495" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2490', 'XML', 'link-234');">XML</a></tt> </tt>
+<a name="L2171"></a><tt class="py-lineno">2171</tt>  <tt class="py-line">         </tt>
+<a name="L2172"></a><tt class="py-lineno">2172</tt>  <tt class="py-line">        <tt id="link-2491" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2491', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2492" 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-2495', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2496" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2496', '_bytes', 'link-18');">_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="L2160"></a><tt class="py-lineno">2160</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="L2161"></a><tt class="py-lineno">2161</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-2497" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2497', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-2498" 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-2498', 'iterchildren', 'link-2498');">iterchildren</a></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">result</tt><tt class="py-op">.</tt><tt id="link-2499" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2499', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2500" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2492', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2493" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2493', '_bytes', 'link-18');">_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="L2173"></a><tt class="py-lineno">2173</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="L2174"></a><tt class="py-lineno">2174</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-2494" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2494', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-2495" 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-2495', 'iterchildren', 'link-2495');">iterchildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</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">result</tt><tt class="py-op">.</tt><tt id="link-2496" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2496', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2497" 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-2500', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2163"></a><tt class="py-lineno">2163</tt>  <tt class="py-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="L2164"></a><tt class="py-lineno">2164</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterchildren_reversed"></a><div id="ETreeOnlyTestCase.test_iterchildren_reversed-def"><a name="L2165"></a><tt class="py-lineno">2165</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="L2166"></a><tt class="py-lineno">2166</tt>  <tt class="py-line">        <tt id="link-2501" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2497', 'tag', 'link-73');">tag</a></tt><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">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="L2177"></a><tt class="py-lineno">2177</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterchildren_reversed"></a><div id="ETreeOnlyTestCase.test_iterchildren_reversed-def"><a name="L2178"></a><tt class="py-lineno">2178</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="L2179"></a><tt class="py-lineno">2179</tt>  <tt class="py-line">        <tt id="link-2498" 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-2501', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2502" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2498', 'XML', 'link-234');">XML</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.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -7369,30 +7365,30 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2502', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2503" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2499', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2500" 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-2503', 'XML', 'link-234');">XML</a></tt> </tt>
-<a name="L2167"></a><tt class="py-lineno">2167</tt>  <tt class="py-line">         </tt>
-<a name="L2168"></a><tt class="py-lineno">2168</tt>  <tt class="py-line">        <tt id="link-2504" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2504', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2505" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2500', 'XML', 'link-234');">XML</a></tt> </tt>
+<a name="L2180"></a><tt class="py-lineno">2180</tt>  <tt class="py-line">         </tt>
+<a name="L2181"></a><tt class="py-lineno">2181</tt>  <tt class="py-line">        <tt id="link-2501" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2501', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2502" 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-2505', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2506" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2506', '_bytes', 'link-18');">_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="L2169"></a><tt class="py-lineno">2169</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="L2170"></a><tt class="py-lineno">2170</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-2507" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2507', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-2508" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-2508', 'iterchildren', 'link-2498');">iterchildren</a></tt><tt class="py-op">(</tt><tt class="py-name">reversed</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="L2171"></a><tt class="py-lineno">2171</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-2509" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2509', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2510" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2502', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2503" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2503', '_bytes', 'link-18');">_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="L2182"></a><tt class="py-lineno">2182</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="L2183"></a><tt class="py-lineno">2183</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-2504" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2504', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-2505" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-2505', 'iterchildren', 'link-2495');">iterchildren</a></tt><tt class="py-op">(</tt><tt class="py-name">reversed</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="L2184"></a><tt class="py-lineno">2184</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-2506" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2506', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2507" 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-2510', 'tag', 'link-73');">tag</a></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">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="L2173"></a><tt class="py-lineno">2173</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterchildren_tag"></a><div id="ETreeOnlyTestCase.test_iterchildren_tag-def"><a name="L2174"></a><tt class="py-lineno">2174</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="L2175"></a><tt class="py-lineno">2175</tt>  <tt class="py-line">        <tt id="link-2511" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2507', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2185"></a><tt class="py-lineno">2185</tt>  <tt class="py-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="L2186"></a><tt class="py-lineno">2186</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterchildren_tag"></a><div id="ETreeOnlyTestCase.test_iterchildren_tag-def"><a name="L2187"></a><tt class="py-lineno">2187</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="L2188"></a><tt class="py-lineno">2188</tt>  <tt class="py-line">        <tt id="link-2508" 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-2511', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2512" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2508', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2509" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -7400,34 +7396,34 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2512', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2513" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2509', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2510" 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-2513', 'XML', 'link-234');">XML</a></tt> </tt>
-<a name="L2176"></a><tt class="py-lineno">2176</tt>  <tt class="py-line">         </tt>
-<a name="L2177"></a><tt class="py-lineno">2177</tt>  <tt class="py-line">        <tt id="link-2514" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2514', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2515" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2510', 'XML', 'link-234');">XML</a></tt> </tt>
+<a name="L2189"></a><tt class="py-lineno">2189</tt>  <tt class="py-line">         </tt>
+<a name="L2190"></a><tt class="py-lineno">2190</tt>  <tt class="py-line">        <tt id="link-2511" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2511', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2512" 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-2515', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2516" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2516', '_bytes', 'link-18');">_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="L2178"></a><tt class="py-lineno">2178</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="L2179"></a><tt class="py-lineno">2179</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-2517" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2517', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-2518" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-2518', 'iterchildren', 'link-2498');">iterchildren</a></tt><tt class="py-op">(</tt><tt id="link-2519" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2512', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2513" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2513', '_bytes', 'link-18');">_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="L2191"></a><tt class="py-lineno">2191</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="L2192"></a><tt class="py-lineno">2192</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-2514" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2514', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-2515" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-2515', 'iterchildren', 'link-2495');">iterchildren</a></tt><tt class="py-op">(</tt><tt id="link-2516" 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-2519', 'tag', 'link-73');">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="L2180"></a><tt class="py-lineno">2180</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-2520" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2520', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2521" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2516', 'tag', 'link-73');">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="L2193"></a><tt class="py-lineno">2193</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-2517" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2517', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2518" 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-2521', 'text', 'link-205');">text</a></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 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="L2182"></a><tt class="py-lineno">2182</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterchildren_tag_posarg"></a><div id="ETreeOnlyTestCase.test_iterchildren_tag_posarg-def"><a name="L2183"></a><tt class="py-lineno">2183</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="L2184"></a><tt class="py-lineno">2184</tt>  <tt class="py-line">        <tt id="link-2522" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2518', 'text', 'link-205');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2194"></a><tt class="py-lineno">2194</tt>  <tt class="py-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="L2195"></a><tt class="py-lineno">2195</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterchildren_tag_posarg"></a><div id="ETreeOnlyTestCase.test_iterchildren_tag_posarg-def"><a name="L2196"></a><tt class="py-lineno">2196</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="L2197"></a><tt class="py-lineno">2197</tt>  <tt class="py-line">        <tt id="link-2519" 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-2522', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2523" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2519', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2520" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -7435,29 +7431,29 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2523', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2524" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2520', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2521" 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-2524', 'XML', 'link-234');">XML</a></tt> </tt>
-<a name="L2185"></a><tt class="py-lineno">2185</tt>  <tt class="py-line"> </tt>
-<a name="L2186"></a><tt class="py-lineno">2186</tt>  <tt class="py-line">        <tt id="link-2525" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2525', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2526" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2521', 'XML', 'link-234');">XML</a></tt> </tt>
+<a name="L2198"></a><tt class="py-lineno">2198</tt>  <tt class="py-line"> </tt>
+<a name="L2199"></a><tt class="py-lineno">2199</tt>  <tt class="py-line">        <tt id="link-2522" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2522', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2523" 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-2526', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><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-18');">_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="L2187"></a><tt class="py-lineno">2187</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="L2188"></a><tt class="py-lineno">2188</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-2528" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2528', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-2529" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-2529', 'iterchildren', 'link-2498');">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="L2189"></a><tt class="py-lineno">2189</tt>  <tt class="py-line">            <tt class="py-name">result</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-726');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2531" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2523', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2524" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2524', '_bytes', 'link-18');">_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="L2200"></a><tt class="py-lineno">2200</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="L2201"></a><tt class="py-lineno">2201</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-2525" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2525', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-2526" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-2526', 'iterchildren', 'link-2495');">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="L2202"></a><tt class="py-lineno">2202</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-2527" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2527', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2528" 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-2531', 'text', 'link-205');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2190"></a><tt class="py-lineno">2190</tt>  <tt class="py-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="L2191"></a><tt class="py-lineno">2191</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterchildren_tag_reversed"></a><div id="ETreeOnlyTestCase.test_iterchildren_tag_reversed-def"><a name="L2192"></a><tt class="py-lineno">2192</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="L2193"></a><tt class="py-lineno">2193</tt>  <tt class="py-line">        <tt id="link-2532" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2528', 'text', 'link-205');">text</a></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-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="L2204"></a><tt class="py-lineno">2204</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterchildren_tag_reversed"></a><div id="ETreeOnlyTestCase.test_iterchildren_tag_reversed-def"><a name="L2205"></a><tt class="py-lineno">2205</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="L2206"></a><tt class="py-lineno">2206</tt>  <tt class="py-line">        <tt id="link-2529" 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-2532', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2533" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2529', 'XML', 'link-234');">XML</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.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -7465,34 +7461,34 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2533', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2534" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2530', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2531" 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-2534', 'XML', 'link-234');">XML</a></tt> </tt>
-<a name="L2194"></a><tt class="py-lineno">2194</tt>  <tt class="py-line">         </tt>
-<a name="L2195"></a><tt class="py-lineno">2195</tt>  <tt class="py-line">        <tt id="link-2535" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2535', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2536" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2531', 'XML', 'link-234');">XML</a></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 id="link-2532" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2532', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2533" 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-2536', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2537" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2537', '_bytes', 'link-18');">_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="L2196"></a><tt class="py-lineno">2196</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="L2197"></a><tt class="py-lineno">2197</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-2538" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2538', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-2539" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-2539', 'iterchildren', 'link-2498');">iterchildren</a></tt><tt class="py-op">(</tt><tt class="py-name">reversed</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-2540" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2533', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2534" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2534', '_bytes', 'link-18');">_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="L2209"></a><tt class="py-lineno">2209</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="L2210"></a><tt class="py-lineno">2210</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-2535" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2535', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-2536" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-2536', 'iterchildren', 'link-2495');">iterchildren</a></tt><tt class="py-op">(</tt><tt class="py-name">reversed</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-2537" 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-73');">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="L2198"></a><tt class="py-lineno">2198</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-2541" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2541', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2542" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2537', 'tag', 'link-73');">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="L2211"></a><tt class="py-lineno">2211</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-2538" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2538', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2539" 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-2542', 'text', 'link-205');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2199"></a><tt class="py-lineno">2199</tt>  <tt class="py-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="L2200"></a><tt class="py-lineno">2200</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterchildren_tag_multiple"></a><div id="ETreeOnlyTestCase.test_iterchildren_tag_multiple-def"><a name="L2201"></a><tt class="py-lineno">2201</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="L2202"></a><tt class="py-lineno">2202</tt>  <tt class="py-line">        <tt id="link-2543" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2539', 'text', 'link-205');">text</a></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">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="L2213"></a><tt class="py-lineno">2213</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterchildren_tag_multiple"></a><div id="ETreeOnlyTestCase.test_iterchildren_tag_multiple-def"><a name="L2214"></a><tt class="py-lineno">2214</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="L2215"></a><tt class="py-lineno">2215</tt>  <tt class="py-line">        <tt id="link-2540" 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-2543', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2544" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2540', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2541" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -7500,34 +7496,34 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2544', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2545" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2541', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2542" 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-2545', 'XML', 'link-234');">XML</a></tt> </tt>
-<a name="L2203"></a><tt class="py-lineno">2203</tt>  <tt class="py-line"> </tt>
-<a name="L2204"></a><tt class="py-lineno">2204</tt>  <tt class="py-line">        <tt id="link-2546" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2546', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2547" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2542', 'XML', 'link-234');">XML</a></tt> </tt>
+<a name="L2216"></a><tt class="py-lineno">2216</tt>  <tt class="py-line"> </tt>
+<a name="L2217"></a><tt class="py-lineno">2217</tt>  <tt class="py-line">        <tt id="link-2543" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2543', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2544" 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-2547', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2548" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2548', '_bytes', 'link-18');">_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="L2205"></a><tt class="py-lineno">2205</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="L2206"></a><tt class="py-lineno">2206</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-2549" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2549', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-2550" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-2550', 'iterchildren', 'link-2498');">iterchildren</a></tt><tt class="py-op">(</tt><tt id="link-2551" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2544', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><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-18');">_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="L2218"></a><tt class="py-lineno">2218</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="L2219"></a><tt class="py-lineno">2219</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-2546" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2546', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-2547" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-2547', 'iterchildren', 'link-2495');">iterchildren</a></tt><tt class="py-op">(</tt><tt id="link-2548" 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-2551', 'tag', 'link-73');">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="L2207"></a><tt class="py-lineno">2207</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-2552" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2552', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2553" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2548', 'tag', 'link-73');">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="L2220"></a><tt class="py-lineno">2220</tt>  <tt class="py-line">            <tt class="py-name">result</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-322');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2550" 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-2553', 'text', 'link-205');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2208"></a><tt class="py-lineno">2208</tt>  <tt class="py-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="L2209"></a><tt class="py-lineno">2209</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="L2210"></a><tt class="py-lineno">2210</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="L2211"></a><tt class="py-lineno">2211</tt>  <tt class="py-line">        <tt id="link-2554" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2550', 'text', 'link-205');">text</a></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 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="L2222"></a><tt class="py-lineno">2222</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="L2223"></a><tt class="py-lineno">2223</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="L2224"></a><tt class="py-lineno">2224</tt>  <tt class="py-line">        <tt id="link-2551" 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-2554', 'XML', 'link-234');">XML</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.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2551', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2552" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -7535,29 +7531,29 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2555', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2556" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2552', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2553" 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-2556', 'XML', 'link-234');">XML</a></tt> </tt>
-<a name="L2212"></a><tt class="py-lineno">2212</tt>  <tt class="py-line"> </tt>
-<a name="L2213"></a><tt class="py-lineno">2213</tt>  <tt class="py-line">        <tt id="link-2557" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2557', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2558" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2553', 'XML', 'link-234');">XML</a></tt> </tt>
+<a name="L2225"></a><tt class="py-lineno">2225</tt>  <tt class="py-line"> </tt>
+<a name="L2226"></a><tt class="py-lineno">2226</tt>  <tt class="py-line">        <tt id="link-2554" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2554', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2555" 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-2558', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2559" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2559', '_bytes', 'link-18');">_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="L2214"></a><tt class="py-lineno">2214</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="L2215"></a><tt class="py-lineno">2215</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-2560" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2560', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-2561" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-2561', 'iterchildren', 'link-2498');">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="L2216"></a><tt class="py-lineno">2216</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-2562" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2562', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2563" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2555', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2556" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2556', '_bytes', 'link-18');">_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="L2227"></a><tt class="py-lineno">2227</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="L2228"></a><tt class="py-lineno">2228</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-2557" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2557', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-2558" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-2558', 'iterchildren', 'link-2495');">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="L2229"></a><tt class="py-lineno">2229</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-2559" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2559', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2560" 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-2563', 'text', 'link-205');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2217"></a><tt class="py-lineno">2217</tt>  <tt class="py-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="L2218"></a><tt class="py-lineno">2218</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="L2219"></a><tt class="py-lineno">2219</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="L2220"></a><tt class="py-lineno">2220</tt>  <tt class="py-line">        <tt id="link-2564" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2560', 'text', 'link-205');">text</a></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 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="L2231"></a><tt class="py-lineno">2231</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="L2232"></a><tt class="py-lineno">2232</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="L2233"></a><tt class="py-lineno">2233</tt>  <tt class="py-line">        <tt id="link-2561" 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-2564', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2565" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2561', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2562" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -7565,34 +7561,34 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2565', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2566" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2562', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2563" 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-2566', 'XML', 'link-234');">XML</a></tt> </tt>
-<a name="L2221"></a><tt class="py-lineno">2221</tt>  <tt class="py-line"> </tt>
-<a name="L2222"></a><tt class="py-lineno">2222</tt>  <tt class="py-line">        <tt id="link-2567" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2567', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2568" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2563', 'XML', 'link-234');">XML</a></tt> </tt>
+<a name="L2234"></a><tt class="py-lineno">2234</tt>  <tt class="py-line"> </tt>
+<a name="L2235"></a><tt class="py-lineno">2235</tt>  <tt class="py-line">        <tt id="link-2564" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2564', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2565" 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-2568', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2569" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2569', '_bytes', 'link-18');">_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="L2223"></a><tt class="py-lineno">2223</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="L2224"></a><tt class="py-lineno">2224</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-2570" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2570', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-2571" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-2571', 'iterchildren', 'link-2498');">iterchildren</a></tt><tt class="py-op">(</tt><tt class="py-name">reversed</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-2572" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2565', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2566" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2566', '_bytes', 'link-18');">_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="L2236"></a><tt class="py-lineno">2236</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="L2237"></a><tt class="py-lineno">2237</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-2567" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2567', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-2568" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-2568', 'iterchildren', 'link-2495');">iterchildren</a></tt><tt class="py-op">(</tt><tt class="py-name">reversed</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-2569" 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-2572', 'tag', 'link-73');">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="L2225"></a><tt class="py-lineno">2225</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-2573" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2573', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2574" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2569', 'tag', 'link-73');">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="L2238"></a><tt class="py-lineno">2238</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-2570" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2570', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2571" 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-2574', 'text', 'link-205');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2226"></a><tt class="py-lineno">2226</tt>  <tt class="py-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="L2227"></a><tt class="py-lineno">2227</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterancestors"></a><div id="ETreeOnlyTestCase.test_iterancestors-def"><a name="L2228"></a><tt class="py-lineno">2228</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="L2229"></a><tt class="py-lineno">2229</tt>  <tt class="py-line">        <tt id="link-2575" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2571', 'text', 'link-205');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2239"></a><tt class="py-lineno">2239</tt>  <tt class="py-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="L2240"></a><tt class="py-lineno">2240</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterancestors"></a><div id="ETreeOnlyTestCase.test_iterancestors-def"><a name="L2241"></a><tt class="py-lineno">2241</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="L2242"></a><tt class="py-lineno">2242</tt>  <tt class="py-line">        <tt id="link-2572" 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-2575', 'Element', 'link-69');">Element</a></tt>    <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2576" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2572', 'Element', 'link-69');">Element</a></tt>    <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2573" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -7600,11 +7596,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2576', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2577" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2573', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2574" 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-2577', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L2230"></a><tt class="py-lineno">2230</tt>  <tt class="py-line">        <tt id="link-2578" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2578', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2579" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2574', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L2243"></a><tt class="py-lineno">2243</tt>  <tt class="py-line">        <tt id="link-2575" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2575', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</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.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -7612,33 +7608,33 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2579', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2580" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2580', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
-<a name="L2231"></a><tt class="py-lineno">2231</tt>  <tt class="py-line"> </tt>
-<a name="L2232"></a><tt class="py-lineno">2232</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2581" 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-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2577" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2577', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
+<a name="L2244"></a><tt class="py-lineno">2244</tt>  <tt class="py-line"> </tt>
+<a name="L2245"></a><tt class="py-lineno">2245</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2578" 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-2581', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2233"></a><tt class="py-lineno">2233</tt>  <tt class="py-line">        <tt class="py-name">b</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-112');">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="L2234"></a><tt class="py-lineno">2234</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2583" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2583', 'SubElement', 'link-112');">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="L2235"></a><tt class="py-lineno">2235</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2584" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2584', 'SubElement', 'link-112');">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="L2236"></a><tt class="py-lineno">2236</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2237"></a><tt class="py-lineno">2237</tt>  <tt class="py-line">            <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">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2585" 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-2585', 'iterancestors', 'link-2585');">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="L2239"></a><tt class="py-lineno">2239</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2240"></a><tt class="py-lineno">2240</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="L2241"></a><tt class="py-lineno">2241</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-2586" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2586', 'iterancestors', 'link-2585');">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="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>
-<a name="L2243"></a><tt class="py-lineno">2243</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="L2244"></a><tt class="py-lineno">2244</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-2587" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2587', 'iterancestors', 'link-2585');">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="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>
-<a name="L2246"></a><tt class="py-lineno">2246</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="L2247"></a><tt class="py-lineno">2247</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-2588" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2588', 'iterancestors', 'link-2585');">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="L2248"></a><tt class="py-lineno">2248</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterancestors_tag"></a><div id="ETreeOnlyTestCase.test_iterancestors_tag-def"><a name="L2249"></a><tt class="py-lineno">2249</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="L2250"></a><tt class="py-lineno">2250</tt>  <tt class="py-line">        <tt id="link-2589" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2578', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</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">b</tt> <tt class="py-op">=</tt> <tt id="link-2579" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2579', 'SubElement', 'link-112');">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="L2247"></a><tt class="py-lineno">2247</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2580" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2580', 'SubElement', 'link-112');">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="L2248"></a><tt class="py-lineno">2248</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2581" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2581', 'SubElement', 'link-112');">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="L2249"></a><tt class="py-lineno">2249</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2250"></a><tt class="py-lineno">2250</tt>  <tt class="py-line">            <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">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2582" 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-2582', 'iterancestors', 'link-2582');">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="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">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2253"></a><tt class="py-lineno">2253</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="L2254"></a><tt class="py-lineno">2254</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-2583" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2583', 'iterancestors', 'link-2582');">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="L2255"></a><tt class="py-lineno">2255</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2256"></a><tt class="py-lineno">2256</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="L2257"></a><tt class="py-lineno">2257</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-2584" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2584', 'iterancestors', 'link-2582');">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="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-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="L2260"></a><tt class="py-lineno">2260</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-2585" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2585', 'iterancestors', 'link-2582');">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="L2261"></a><tt class="py-lineno">2261</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterancestors_tag"></a><div id="ETreeOnlyTestCase.test_iterancestors_tag-def"><a name="L2262"></a><tt class="py-lineno">2262</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="L2263"></a><tt class="py-lineno">2263</tt>  <tt class="py-line">        <tt id="link-2586" 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-2589', 'Element', 'link-69');">Element</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
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2586', 'Element', 'link-69');">Element</a></tt>    <tt class="py-op">=</tt> <tt class="py-name">self</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.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -7646,11 +7642,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2590', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2591" 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-3');">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-2591', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L2251"></a><tt class="py-lineno">2251</tt>  <tt class="py-line">        <tt id="link-2592" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2592', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2593" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2588', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L2264"></a><tt class="py-lineno">2264</tt>  <tt class="py-line">        <tt id="link-2589" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2589', 'SubElement', 'link-112');">SubElement</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.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -7658,44 +7654,44 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2593', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2594" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2594', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
-<a name="L2252"></a><tt class="py-lineno">2252</tt>  <tt class="py-line"> </tt>
-<a name="L2253"></a><tt class="py-lineno">2253</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2595" 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-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2591" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2591', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
+<a name="L2265"></a><tt class="py-lineno">2265</tt>  <tt class="py-line"> </tt>
+<a name="L2266"></a><tt class="py-lineno">2266</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2592" 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-2595', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</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">b</tt> <tt class="py-op">=</tt> <tt id="link-2596" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2596', 'SubElement', 'link-112');">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="L2255"></a><tt class="py-lineno">2255</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2597" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2597', 'SubElement', 'link-112');">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="L2256"></a><tt class="py-lineno">2256</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2598" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2598', 'SubElement', 'link-112');">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="L2257"></a><tt class="py-lineno">2257</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2258"></a><tt class="py-lineno">2258</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="L2259"></a><tt class="py-lineno">2259</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-2599" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2599', 'iterancestors', 'link-2585');">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="L2260"></a><tt class="py-lineno">2260</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2261"></a><tt class="py-lineno">2261</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="L2262"></a><tt class="py-lineno">2262</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-2600" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2600', 'iterancestors', 'link-2585');">iterancestors</a></tt><tt class="py-op">(</tt><tt id="link-2601" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2592', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2267"></a><tt class="py-lineno">2267</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2593" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2593', 'SubElement', 'link-112');">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="L2268"></a><tt class="py-lineno">2268</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2594" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2594', 'SubElement', 'link-112');">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="L2269"></a><tt class="py-lineno">2269</tt>  <tt class="py-line">        <tt class="py-name">d</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-112');">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="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-op">[</tt><tt class="py-name">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">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2596" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2596', 'iterancestors', 'link-2582');">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="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-op">[</tt><tt class="py-name">a</tt><tt class="py-op">]</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">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2597" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2597', 'iterancestors', 'link-2582');">iterancestors</a></tt><tt class="py-op">(</tt><tt id="link-2598" 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-2601', 'tag', 'link-73');">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="L2263"></a><tt class="py-lineno">2263</tt>  <tt class="py-line"> </tt>
-<a name="L2264"></a><tt class="py-lineno">2264</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2265"></a><tt class="py-lineno">2265</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="L2266"></a><tt class="py-lineno">2266</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-2602" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2602', 'iterancestors', 'link-2585');">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="L2267"></a><tt class="py-lineno">2267</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2268"></a><tt class="py-lineno">2268</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="L2269"></a><tt class="py-lineno">2269</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-2603" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2603', 'iterancestors', 'link-2585');">iterancestors</a></tt><tt class="py-op">(</tt><tt id="link-2604" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2598', 'tag', 'link-73');">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="L2276"></a><tt class="py-lineno">2276</tt>  <tt class="py-line"> </tt>
+<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>
+<a name="L2278"></a><tt class="py-lineno">2278</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="L2279"></a><tt class="py-lineno">2279</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-2599" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2599', 'iterancestors', 'link-2582');">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="L2280"></a><tt class="py-lineno">2280</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2281"></a><tt class="py-lineno">2281</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="L2282"></a><tt class="py-lineno">2282</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-2600" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2600', 'iterancestors', 'link-2582');">iterancestors</a></tt><tt class="py-op">(</tt><tt id="link-2601" 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-2604', 'tag', 'link-73');">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="L2270"></a><tt class="py-lineno">2270</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterancestors_tag_multiple"></a><div id="ETreeOnlyTestCase.test_iterancestors_tag_multiple-def"><a name="L2271"></a><tt class="py-lineno">2271</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="L2272"></a><tt class="py-lineno">2272</tt>  <tt class="py-line">        <tt id="link-2605" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2601', 'tag', 'link-73');">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="L2283"></a><tt class="py-lineno">2283</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterancestors_tag_multiple"></a><div id="ETreeOnlyTestCase.test_iterancestors_tag_multiple-def"><a name="L2284"></a><tt class="py-lineno">2284</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="L2285"></a><tt class="py-lineno">2285</tt>  <tt class="py-line">        <tt id="link-2602" 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-2605', 'Element', 'link-69');">Element</a></tt>    <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2606" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2602', 'Element', 'link-69');">Element</a></tt>    <tt class="py-op">=</tt> <tt class="py-name">self</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.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -7703,11 +7699,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2606', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2607" 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-3');">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-2607', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L2273"></a><tt class="py-lineno">2273</tt>  <tt class="py-line">        <tt id="link-2608" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2608', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2609" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2604', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L2286"></a><tt class="py-lineno">2286</tt>  <tt class="py-line">        <tt id="link-2605" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2605', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2606" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -7715,80 +7711,80 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2609', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2610" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2610', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
-<a name="L2274"></a><tt class="py-lineno">2274</tt>  <tt class="py-line"> </tt>
-<a name="L2275"></a><tt class="py-lineno">2275</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2611" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2606', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2607" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2607', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
+<a name="L2287"></a><tt class="py-lineno">2287</tt>  <tt class="py-line"> </tt>
+<a name="L2288"></a><tt class="py-lineno">2288</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2608" 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-2611', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'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">b</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-112');">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="L2277"></a><tt class="py-lineno">2277</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2613" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2613', 'SubElement', 'link-112');">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="L2278"></a><tt class="py-lineno">2278</tt>  <tt class="py-line">        <tt class="py-name">d</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-112');">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="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>
-<a name="L2280"></a><tt class="py-lineno">2280</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="L2281"></a><tt class="py-lineno">2281</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-2615" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2615', 'iterancestors', 'link-2585');">iterancestors</a></tt><tt class="py-op">(</tt><tt id="link-2616" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2608', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</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">b</tt> <tt class="py-op">=</tt> <tt id="link-2609" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2609', 'SubElement', 'link-112');">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="L2290"></a><tt class="py-lineno">2290</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2610" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2610', 'SubElement', 'link-112');">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="L2291"></a><tt class="py-lineno">2291</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2611" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2611', 'SubElement', 'link-112');">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="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>
+<a name="L2293"></a><tt class="py-lineno">2293</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="L2294"></a><tt class="py-lineno">2294</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-2612" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2612', 'iterancestors', 'link-2582');">iterancestors</a></tt><tt class="py-op">(</tt><tt id="link-2613" 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-2616', 'tag', 'link-73');">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="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>
-<a name="L2283"></a><tt class="py-lineno">2283</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="L2284"></a><tt class="py-lineno">2284</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-2617" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2617', 'iterancestors', 'link-2585');">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="L2285"></a><tt class="py-lineno">2285</tt>  <tt class="py-line"> </tt>
-<a name="L2286"></a><tt class="py-lineno">2286</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2287"></a><tt class="py-lineno">2287</tt>  <tt class="py-line">            <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">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2618" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2618', 'iterancestors', 'link-2585');">iterancestors</a></tt><tt class="py-op">(</tt><tt id="link-2619" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2613', 'tag', 'link-73');">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="L2295"></a><tt class="py-lineno">2295</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2296"></a><tt class="py-lineno">2296</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="L2297"></a><tt class="py-lineno">2297</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-2614" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2614', 'iterancestors', 'link-2582');">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="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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2300"></a><tt class="py-lineno">2300</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</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">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2615" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2615', 'iterancestors', 'link-2582');">iterancestors</a></tt><tt class="py-op">(</tt><tt id="link-2616" 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-2619', 'tag', 'link-73');">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="L2289"></a><tt class="py-lineno">2289</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2290"></a><tt class="py-lineno">2290</tt>  <tt class="py-line">            <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">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2620" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2620', 'iterancestors', 'link-2585');">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="L2292"></a><tt class="py-lineno">2292</tt>  <tt class="py-line"> </tt>
-<a name="L2293"></a><tt class="py-lineno">2293</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2294"></a><tt class="py-lineno">2294</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2295"></a><tt class="py-lineno">2295</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-2621" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2621', 'iterancestors', 'link-2585');">iterancestors</a></tt><tt class="py-op">(</tt><tt id="link-2622" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2616', 'tag', 'link-73');">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="L2302"></a><tt class="py-lineno">2302</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2303"></a><tt class="py-lineno">2303</tt>  <tt class="py-line">            <tt class="py-op">[</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 class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2617" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2617', 'iterancestors', 'link-2582');">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="L2305"></a><tt class="py-lineno">2305</tt>  <tt class="py-line"> </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 class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2308"></a><tt class="py-lineno">2308</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-2618" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2618', 'iterancestors', 'link-2582');">iterancestors</a></tt><tt class="py-op">(</tt><tt id="link-2619" 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-2622', 'tag', 'link-73');">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="L2296"></a><tt class="py-lineno">2296</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2297"></a><tt class="py-lineno">2297</tt>  <tt class="py-line">            <tt class="py-op">[</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 class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2623" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2623', 'iterancestors', 'link-2585');">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="L2299"></a><tt class="py-lineno">2299</tt>  <tt class="py-line"> </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-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="L2302"></a><tt class="py-lineno">2302</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-2624" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2624', 'iterancestors', 'link-2585');">iterancestors</a></tt><tt class="py-op">(</tt><tt id="link-2625" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2619', 'tag', 'link-73');">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="L2309"></a><tt class="py-lineno">2309</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2310"></a><tt class="py-lineno">2310</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</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">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2620" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2620', 'iterancestors', 'link-2582');">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="L2312"></a><tt class="py-lineno">2312</tt>  <tt class="py-line"> </tt>
+<a name="L2313"></a><tt class="py-lineno">2313</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2314"></a><tt class="py-lineno">2314</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="L2315"></a><tt class="py-lineno">2315</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-2621" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2621', 'iterancestors', 'link-2582');">iterancestors</a></tt><tt class="py-op">(</tt><tt id="link-2622" 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-2625', 'tag', 'link-73');">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="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 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="L2305"></a><tt class="py-lineno">2305</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-2626" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2626', 'iterancestors', 'link-2585');">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="L2306"></a><tt class="py-lineno">2306</tt>  <tt class="py-line"> </tt>
-<a name="L2307"></a><tt class="py-lineno">2307</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2308"></a><tt class="py-lineno">2308</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="L2309"></a><tt class="py-lineno">2309</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-2627" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2627', 'iterancestors', 'link-2585');">iterancestors</a></tt><tt class="py-op">(</tt><tt id="link-2628" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2622', 'tag', 'link-73');">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="L2316"></a><tt class="py-lineno">2316</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2317"></a><tt class="py-lineno">2317</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="L2318"></a><tt class="py-lineno">2318</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-2623" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2623', 'iterancestors', 'link-2582');">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="L2319"></a><tt class="py-lineno">2319</tt>  <tt class="py-line"> </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>
+<a name="L2321"></a><tt class="py-lineno">2321</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="L2322"></a><tt class="py-lineno">2322</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-2624" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2624', 'iterancestors', 'link-2582');">iterancestors</a></tt><tt class="py-op">(</tt><tt id="link-2625" 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-2628', 'tag', 'link-73');">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="L2310"></a><tt class="py-lineno">2310</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2311"></a><tt class="py-lineno">2311</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="L2312"></a><tt class="py-lineno">2312</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-2629" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2629', 'iterancestors', 'link-2585');">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="L2313"></a><tt class="py-lineno">2313</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterdescendants"></a><div id="ETreeOnlyTestCase.test_iterdescendants-def"><a name="L2314"></a><tt class="py-lineno">2314</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="L2315"></a><tt class="py-lineno">2315</tt>  <tt class="py-line">        <tt id="link-2630" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2625', 'tag', 'link-73');">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="L2323"></a><tt class="py-lineno">2323</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2324"></a><tt class="py-lineno">2324</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="L2325"></a><tt class="py-lineno">2325</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-2626" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2626', 'iterancestors', 'link-2582');">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="L2326"></a><tt class="py-lineno">2326</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterdescendants"></a><div id="ETreeOnlyTestCase.test_iterdescendants-def"><a name="L2327"></a><tt class="py-lineno">2327</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="L2328"></a><tt class="py-lineno">2328</tt>  <tt class="py-line">        <tt id="link-2627" 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-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2631" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2627', 'Element', 'link-69');">Element</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.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -7796,11 +7792,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2631', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2632" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2628', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2629" 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-2632', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L2316"></a><tt class="py-lineno">2316</tt>  <tt class="py-line">        <tt id="link-2633" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2633', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2634" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2629', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L2329"></a><tt class="py-lineno">2329</tt>  <tt class="py-line">        <tt id="link-2630" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2630', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2631" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -7808,29 +7804,29 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2634', 'etree', 'link-3');">etree</a></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-112');">SubElement</a></tt> </tt>
-<a name="L2317"></a><tt class="py-lineno">2317</tt>  <tt class="py-line"> </tt>
-<a name="L2318"></a><tt class="py-lineno">2318</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2636" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2631', 'etree', 'link-3');">etree</a></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-112');">SubElement</a></tt> </tt>
+<a name="L2330"></a><tt class="py-lineno">2330</tt>  <tt class="py-line"> </tt>
+<a name="L2331"></a><tt class="py-lineno">2331</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2633" 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-2636', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2319"></a><tt class="py-lineno">2319</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2637" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2637', 'SubElement', 'link-112');">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="L2320"></a><tt class="py-lineno">2320</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2638" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2638', 'SubElement', 'link-112');">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="L2321"></a><tt class="py-lineno">2321</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2639" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2639', 'SubElement', 'link-112');">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="L2322"></a><tt class="py-lineno">2322</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2640" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2640', 'SubElement', 'link-112');">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="L2323"></a><tt class="py-lineno">2323</tt>  <tt class="py-line"> </tt>
-<a name="L2324"></a><tt class="py-lineno">2324</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2325"></a><tt class="py-lineno">2325</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="L2326"></a><tt class="py-lineno">2326</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-2641" 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-2641', 'iterdescendants', 'link-2641');">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="L2327"></a><tt class="py-lineno">2327</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2328"></a><tt class="py-lineno">2328</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</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">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2642" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2642', 'iterdescendants', 'link-2641');">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="L2330"></a><tt class="py-lineno">2330</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterdescendants_tag"></a><div id="ETreeOnlyTestCase.test_iterdescendants_tag-def"><a name="L2331"></a><tt class="py-lineno">2331</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="L2332"></a><tt class="py-lineno">2332</tt>  <tt class="py-line">        <tt id="link-2643" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2633', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2332"></a><tt class="py-lineno">2332</tt>  <tt class="py-line">        <tt class="py-name">b</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-112');">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="L2333"></a><tt class="py-lineno">2333</tt>  <tt class="py-line">        <tt class="py-name">c</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-112');">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="L2334"></a><tt class="py-lineno">2334</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2636" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2636', 'SubElement', 'link-112');">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="L2335"></a><tt class="py-lineno">2335</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2637" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2637', 'SubElement', 'link-112');">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="L2336"></a><tt class="py-lineno">2336</tt>  <tt class="py-line"> </tt>
+<a name="L2337"></a><tt class="py-lineno">2337</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2338"></a><tt class="py-lineno">2338</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="L2339"></a><tt class="py-lineno">2339</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" 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-2638', 'iterdescendants', 'link-2638');">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="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>
+<a name="L2341"></a><tt class="py-lineno">2341</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2342"></a><tt class="py-lineno">2342</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-2639" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2639', 'iterdescendants', 'link-2638');">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="L2343"></a><tt class="py-lineno">2343</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterdescendants_tag"></a><div id="ETreeOnlyTestCase.test_iterdescendants_tag-def"><a name="L2344"></a><tt class="py-lineno">2344</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="L2345"></a><tt class="py-lineno">2345</tt>  <tt class="py-line">        <tt id="link-2640" 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-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2644" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2640', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</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.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -7838,11 +7834,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2644', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2645" 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-3');">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-2645', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L2333"></a><tt class="py-lineno">2333</tt>  <tt class="py-line">        <tt id="link-2646" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2646', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2647" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2642', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L2346"></a><tt class="py-lineno">2346</tt>  <tt class="py-line">        <tt id="link-2643" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2643', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2644" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -7850,51 +7846,51 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2647', 'etree', 'link-3');">etree</a></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-112');">SubElement</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 class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2649" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2644', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2645" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2645', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
+<a name="L2347"></a><tt class="py-lineno">2347</tt>  <tt class="py-line"> </tt>
+<a name="L2348"></a><tt class="py-lineno">2348</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2646" 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-2649', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</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">b</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-112');">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="L2337"></a><tt class="py-lineno">2337</tt>  <tt class="py-line">        <tt class="py-name">c</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-112');">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="L2338"></a><tt class="py-lineno">2338</tt>  <tt class="py-line">        <tt class="py-name">d</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-112');">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="L2339"></a><tt class="py-lineno">2339</tt>  <tt class="py-line">        <tt class="py-name">e</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-112');">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="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">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 class="py-op">[</tt><tt class="py-op">]</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">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.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2654', 'iterdescendants', 'link-2641');">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="L2344"></a><tt class="py-lineno">2344</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2345"></a><tt class="py-lineno">2345</tt>  <tt class="py-line">            <tt class="py-op">[</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 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.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2655', 'iterdescendants', 'link-2641');">iterdescendants</a></tt><tt class="py-op">(</tt><tt id="link-2656" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2646', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2349"></a><tt class="py-lineno">2349</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2647" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2647', 'SubElement', 'link-112');">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="L2350"></a><tt class="py-lineno">2350</tt>  <tt class="py-line">        <tt class="py-name">c</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-112');">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="L2351"></a><tt class="py-lineno">2351</tt>  <tt class="py-line">        <tt class="py-name">d</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-112');">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="L2352"></a><tt class="py-lineno">2352</tt>  <tt class="py-line">        <tt class="py-name">e</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-112');">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="L2353"></a><tt class="py-lineno">2353</tt>  <tt class="py-line"> </tt>
+<a name="L2354"></a><tt class="py-lineno">2354</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2355"></a><tt class="py-lineno">2355</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2356"></a><tt class="py-lineno">2356</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-2651" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2651', 'iterdescendants', 'link-2638');">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="L2357"></a><tt class="py-lineno">2357</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2358"></a><tt class="py-lineno">2358</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</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">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2652" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2652', 'iterdescendants', 'link-2638');">iterdescendants</a></tt><tt class="py-op">(</tt><tt id="link-2653" 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-2656', 'tag', 'link-73');">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="L2347"></a><tt class="py-lineno">2347</tt>  <tt class="py-line"> </tt>
-<a name="L2348"></a><tt class="py-lineno">2348</tt>  <tt class="py-line">        <tt class="py-name">a2</tt> <tt class="py-op">=</tt> <tt id="link-2657" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2657', 'SubElement', 'link-112');">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="L2349"></a><tt class="py-lineno">2349</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2350"></a><tt class="py-lineno">2350</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="L2351"></a><tt class="py-lineno">2351</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-2658" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2658', 'iterdescendants', 'link-2641');">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="L2352"></a><tt class="py-lineno">2352</tt>  <tt class="py-line"> </tt>
-<a name="L2353"></a><tt class="py-lineno">2353</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2354"></a><tt class="py-lineno">2354</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="L2355"></a><tt class="py-lineno">2355</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-2659" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2659', 'iterdescendants', 'link-2641');">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="L2356"></a><tt class="py-lineno">2356</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2357"></a><tt class="py-lineno">2357</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="L2358"></a><tt class="py-lineno">2358</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-2660" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2660', 'iterdescendants', 'link-2641');">iterdescendants</a></tt><tt class="py-op">(</tt><tt id="link-2661" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2653', 'tag', 'link-73');">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="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">a2</tt> <tt class="py-op">=</tt> <tt id="link-2654" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2654', 'SubElement', 'link-112');">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="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>
+<a name="L2363"></a><tt class="py-lineno">2363</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="L2364"></a><tt class="py-lineno">2364</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.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2655', 'iterdescendants', 'link-2638');">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="L2365"></a><tt class="py-lineno">2365</tt>  <tt class="py-line"> </tt>
+<a name="L2366"></a><tt class="py-lineno">2366</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2367"></a><tt class="py-lineno">2367</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="L2368"></a><tt class="py-lineno">2368</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-2656" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2656', 'iterdescendants', 'link-2638');">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="L2369"></a><tt class="py-lineno">2369</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2370"></a><tt class="py-lineno">2370</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="L2371"></a><tt class="py-lineno">2371</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-2657" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2657', 'iterdescendants', 'link-2638');">iterdescendants</a></tt><tt class="py-op">(</tt><tt id="link-2658" 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-2661', 'tag', 'link-73');">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="L2359"></a><tt class="py-lineno">2359</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterdescendants_tag_multiple"></a><div id="ETreeOnlyTestCase.test_iterdescendants_tag_multiple-def"><a name="L2360"></a><tt class="py-lineno">2360</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="L2361"></a><tt class="py-lineno">2361</tt>  <tt class="py-line">        <tt id="link-2662" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2658', 'tag', 'link-73');">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="L2372"></a><tt class="py-lineno">2372</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterdescendants_tag_multiple"></a><div id="ETreeOnlyTestCase.test_iterdescendants_tag_multiple-def"><a name="L2373"></a><tt class="py-lineno">2373</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="L2374"></a><tt class="py-lineno">2374</tt>  <tt class="py-line">        <tt id="link-2659" 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-2662', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2663" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2659', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2660" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -7902,11 +7898,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2663', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2664" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2660', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2661" 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-2664', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L2362"></a><tt class="py-lineno">2362</tt>  <tt class="py-line">        <tt id="link-2665" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2665', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2666" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2661', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L2375"></a><tt class="py-lineno">2375</tt>  <tt class="py-line">        <tt id="link-2662" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2662', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2663" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -7914,71 +7910,71 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2666', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2667" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2667', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
-<a name="L2363"></a><tt class="py-lineno">2363</tt>  <tt class="py-line"> </tt>
-<a name="L2364"></a><tt class="py-lineno">2364</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2668" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2663', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2664" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2664', 'SubElement', 'link-112');">SubElement</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 class="py-name">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-2668', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</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">b</tt> <tt class="py-op">=</tt> <tt id="link-2669" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2669', 'SubElement', 'link-112');">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="L2366"></a><tt class="py-lineno">2366</tt>  <tt class="py-line">        <tt class="py-name">c</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-112');">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="L2367"></a><tt class="py-lineno">2367</tt>  <tt class="py-line">        <tt class="py-name">d</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-112');">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="L2368"></a><tt class="py-lineno">2368</tt>  <tt class="py-line">        <tt class="py-name">e</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-112');">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="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 class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2371"></a><tt class="py-lineno">2371</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="L2372"></a><tt class="py-lineno">2372</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-2673" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2673', 'iterdescendants', 'link-2641');">iterdescendants</a></tt><tt class="py-op">(</tt><tt id="link-2674" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2665', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</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">b</tt> <tt class="py-op">=</tt> <tt id="link-2666" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2666', 'SubElement', 'link-112');">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="L2379"></a><tt class="py-lineno">2379</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2667" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2667', 'SubElement', 'link-112');">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="L2380"></a><tt class="py-lineno">2380</tt>  <tt class="py-line">        <tt class="py-name">d</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-112');">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="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-2669" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2669', 'SubElement', 'link-112');">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="L2382"></a><tt class="py-lineno">2382</tt>  <tt class="py-line"> </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 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="L2385"></a><tt class="py-lineno">2385</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-2670" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2670', 'iterdescendants', 'link-2638');">iterdescendants</a></tt><tt class="py-op">(</tt><tt id="link-2671" 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-2674', 'tag', 'link-73');">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="L2373"></a><tt class="py-lineno">2373</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2374"></a><tt class="py-lineno">2374</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="L2375"></a><tt class="py-lineno">2375</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.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2675', 'iterdescendants', 'link-2641');">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="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 class="py-name">a2</tt> <tt class="py-op">=</tt> <tt id="link-2676" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2676', 'SubElement', 'link-112');">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="L2378"></a><tt class="py-lineno">2378</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2379"></a><tt class="py-lineno">2379</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="L2380"></a><tt class="py-lineno">2380</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.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2677', 'iterdescendants', 'link-2641');">iterdescendants</a></tt><tt class="py-op">(</tt><tt id="link-2678" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2671', 'tag', 'link-73');">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="L2386"></a><tt class="py-lineno">2386</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2387"></a><tt class="py-lineno">2387</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="L2388"></a><tt class="py-lineno">2388</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-2672" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2672', 'iterdescendants', 'link-2638');">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="L2389"></a><tt class="py-lineno">2389</tt>  <tt class="py-line"> </tt>
+<a name="L2390"></a><tt class="py-lineno">2390</tt>  <tt class="py-line">        <tt class="py-name">a2</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-112');">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="L2391"></a><tt class="py-lineno">2391</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2392"></a><tt class="py-lineno">2392</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="L2393"></a><tt class="py-lineno">2393</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-2674" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2674', 'iterdescendants', 'link-2638');">iterdescendants</a></tt><tt class="py-op">(</tt><tt id="link-2675" 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-2678', 'tag', 'link-73');">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="L2381"></a><tt class="py-lineno">2381</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2382"></a><tt class="py-lineno">2382</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="L2383"></a><tt class="py-lineno">2383</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.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2679', 'iterdescendants', 'link-2641');">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="L2384"></a><tt class="py-lineno">2384</tt>  <tt class="py-line"> </tt>
-<a name="L2385"></a><tt class="py-lineno">2385</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2386"></a><tt class="py-lineno">2386</tt>  <tt class="py-line">            <tt class="py-op">[</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 class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2680" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2680', 'iterdescendants', 'link-2641');">iterdescendants</a></tt><tt class="py-op">(</tt><tt id="link-2681" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2675', 'tag', 'link-73');">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="L2394"></a><tt class="py-lineno">2394</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2395"></a><tt class="py-lineno">2395</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="L2396"></a><tt class="py-lineno">2396</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.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2676', 'iterdescendants', 'link-2638');">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="L2397"></a><tt class="py-lineno">2397</tt>  <tt class="py-line"> </tt>
+<a name="L2398"></a><tt class="py-lineno">2398</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2399"></a><tt class="py-lineno">2399</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</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">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2677" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2677', 'iterdescendants', 'link-2638');">iterdescendants</a></tt><tt class="py-op">(</tt><tt id="link-2678" 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-2681', 'tag', 'link-73');">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="L2388"></a><tt class="py-lineno">2388</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2389"></a><tt class="py-lineno">2389</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2390"></a><tt class="py-lineno">2390</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-2682" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2682', 'iterdescendants', 'link-2641');">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="L2391"></a><tt class="py-lineno">2391</tt>  <tt class="py-line"> </tt>
-<a name="L2392"></a><tt class="py-lineno">2392</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2393"></a><tt class="py-lineno">2393</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="L2394"></a><tt class="py-lineno">2394</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-2683" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2683', 'iterdescendants', 'link-2641');">iterdescendants</a></tt><tt class="py-op">(</tt><tt id="link-2684" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2678', 'tag', 'link-73');">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="L2401"></a><tt class="py-lineno">2401</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2402"></a><tt class="py-lineno">2402</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</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">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2679" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2679', 'iterdescendants', 'link-2638');">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="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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2406"></a><tt class="py-lineno">2406</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="L2407"></a><tt class="py-lineno">2407</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-2680" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2680', 'iterdescendants', 'link-2638');">iterdescendants</a></tt><tt class="py-op">(</tt><tt id="link-2681" 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-2684', 'tag', 'link-73');">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="L2395"></a><tt class="py-lineno">2395</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2396"></a><tt class="py-lineno">2396</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="L2397"></a><tt class="py-lineno">2397</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-2685" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2685', 'iterdescendants', 'link-2641');">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="L2398"></a><tt class="py-lineno">2398</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_getroottree"></a><div id="ETreeOnlyTestCase.test_getroottree-def"><a name="L2399"></a><tt class="py-lineno">2399</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="L2400"></a><tt class="py-lineno">2400</tt>  <tt class="py-line">        <tt id="link-2686" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2681', 'tag', 'link-73');">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="L2408"></a><tt class="py-lineno">2408</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2409"></a><tt class="py-lineno">2409</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="L2410"></a><tt class="py-lineno">2410</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-2682" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2682', 'iterdescendants', 'link-2638');">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="L2411"></a><tt class="py-lineno">2411</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_getroottree"></a><div id="ETreeOnlyTestCase.test_getroottree-def"><a name="L2412"></a><tt class="py-lineno">2412</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="L2413"></a><tt class="py-lineno">2413</tt>  <tt class="py-line">        <tt id="link-2683" 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-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2687" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2683', 'Element', 'link-69');">Element</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.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -7986,11 +7982,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2687', 'etree', 'link-3');">etree</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-2684', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2685" 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-69');">Element</a></tt> </tt>
-<a name="L2401"></a><tt class="py-lineno">2401</tt>  <tt class="py-line">        <tt id="link-2689" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2689', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2690" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2685', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L2414"></a><tt class="py-lineno">2414</tt>  <tt class="py-line">        <tt id="link-2686" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2686', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2687" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -7998,30 +7994,30 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2690', 'etree', 'link-3');">etree</a></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-112');">SubElement</a></tt> </tt>
-<a name="L2402"></a><tt class="py-lineno">2402</tt>  <tt class="py-line"> </tt>
-<a name="L2403"></a><tt class="py-lineno">2403</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2692" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2687', 'etree', 'link-3');">etree</a></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-112');">SubElement</a></tt> </tt>
+<a name="L2415"></a><tt class="py-lineno">2415</tt>  <tt class="py-line"> </tt>
+<a name="L2416"></a><tt class="py-lineno">2416</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2689" 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-2692', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2404"></a><tt class="py-lineno">2404</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2693" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2693', 'SubElement', 'link-112');">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="L2405"></a><tt class="py-lineno">2405</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2694" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2694', 'SubElement', 'link-112');">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="L2406"></a><tt class="py-lineno">2406</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2695" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2695', 'SubElement', 'link-112');">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="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 class="py-name">a</tt><tt class="py-op">,</tt> </tt>
-<a name="L2409"></a><tt class="py-lineno">2409</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2696" 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-2696', 'getroottree', 'link-2696');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2697" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2697', 'getroot', 'link-805');">getroot</a></tt><tt class="py-op">(</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 class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2411"></a><tt class="py-lineno">2411</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">,</tt> </tt>
-<a name="L2412"></a><tt class="py-lineno">2412</tt>  <tt class="py-line">            <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2698" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-2698', 'getroottree', 'link-2696');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2699" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2699', 'getroot', 'link-805');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</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 class="py-name">a</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">d</tt><tt class="py-op">.</tt><tt id="link-2700" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-2700', 'getroottree', 'link-2696');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2701" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2701', 'getroot', 'link-805');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2416"></a><tt class="py-lineno">2416</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_getnext"></a><div id="ETreeOnlyTestCase.test_getnext-def"><a name="L2417"></a><tt class="py-lineno">2417</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="L2418"></a><tt class="py-lineno">2418</tt>  <tt class="py-line">        <tt id="link-2702" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2689', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2417"></a><tt class="py-lineno">2417</tt>  <tt class="py-line">        <tt class="py-name">b</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-112');">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="L2418"></a><tt class="py-lineno">2418</tt>  <tt class="py-line">        <tt class="py-name">c</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-112');">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="L2419"></a><tt class="py-lineno">2419</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2692" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2692', 'SubElement', 'link-112');">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="L2420"></a><tt class="py-lineno">2420</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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">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">a</tt><tt class="py-op">.</tt><tt id="link-2693" 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-2693', 'getroottree', 'link-2693');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2694" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2694', 'getroot', 'link-802');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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">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">b</tt><tt class="py-op">.</tt><tt id="link-2695" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-2695', 'getroottree', 'link-2693');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2696" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2696', 'getroot', 'link-802');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</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 class="py-name">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">d</tt><tt class="py-op">.</tt><tt id="link-2697" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-2697', 'getroottree', 'link-2693');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2698" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2698', 'getroot', 'link-802');">getroot</a></tt><tt class="py-op">(</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_getnext"></a><div id="ETreeOnlyTestCase.test_getnext-def"><a name="L2430"></a><tt class="py-lineno">2430</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="L2431"></a><tt class="py-lineno">2431</tt>  <tt class="py-line">        <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-2702', 'Element', 'link-69');">Element</a></tt>    <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2703" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2699', 'Element', 'link-69');">Element</a></tt>    <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2700" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -8029,11 +8025,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2703', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2704" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2700', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2701" 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-2704', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L2419"></a><tt class="py-lineno">2419</tt>  <tt class="py-line">        <tt id="link-2705" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2705', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2706" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2701', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L2432"></a><tt class="py-lineno">2432</tt>  <tt class="py-line">        <tt id="link-2702" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2702', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2703" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -8041,29 +8037,29 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2706', 'etree', 'link-3');">etree</a></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-112');">SubElement</a></tt> </tt>
-<a name="L2420"></a><tt class="py-lineno">2420</tt>  <tt class="py-line"> </tt>
-<a name="L2421"></a><tt class="py-lineno">2421</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2708" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2703', 'etree', 'link-3');">etree</a></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-112');">SubElement</a></tt> </tt>
+<a name="L2433"></a><tt class="py-lineno">2433</tt>  <tt class="py-line"> </tt>
+<a name="L2434"></a><tt class="py-lineno">2434</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2705" 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-2708', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'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">b</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-112');">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="L2423"></a><tt class="py-lineno">2423</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2710" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2710', 'SubElement', 'link-112');">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="L2424"></a><tt class="py-lineno">2424</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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">None</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">a</tt><tt class="py-op">.</tt><tt id="link-2711" class="py-name"><a title="lxml.etree._Element.getnext" class="py-name" href="#" onclick="return doclink('link-2711', 'getnext', 'link-1337');">getnext</a></tt><tt class="py-op">(</tt><tt class="py-op">)</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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">c</tt><tt class="py-op">,</tt> </tt>
-<a name="L2429"></a><tt class="py-lineno">2429</tt>  <tt class="py-line">            <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2712" class="py-name"><a title="lxml.etree._Element.getnext" class="py-name" href="#" onclick="return doclink('link-2712', 'getnext', 'link-1337');">getnext</a></tt><tt class="py-op">(</tt><tt class="py-op">)</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2431"></a><tt class="py-lineno">2431</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L2432"></a><tt class="py-lineno">2432</tt>  <tt class="py-line">            <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2713" class="py-name"><a title="lxml.etree._Element.getnext" class="py-name" href="#" onclick="return doclink('link-2713', 'getnext', 'link-1337');">getnext</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2433"></a><tt class="py-lineno">2433</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_getprevious"></a><div id="ETreeOnlyTestCase.test_getprevious-def"><a name="L2434"></a><tt class="py-lineno">2434</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="L2435"></a><tt class="py-lineno">2435</tt>  <tt class="py-line">        <tt id="link-2714" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2705', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</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">b</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-112');">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="L2436"></a><tt class="py-lineno">2436</tt>  <tt class="py-line">        <tt class="py-name">c</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-112');">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="L2437"></a><tt class="py-lineno">2437</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2438"></a><tt class="py-lineno">2438</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L2439"></a><tt class="py-lineno">2439</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2708" class="py-name"><a title="lxml.etree._Element.getnext" class="py-name" href="#" onclick="return doclink('link-2708', 'getnext', 'link-1334');">getnext</a></tt><tt class="py-op">(</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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">c</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">b</tt><tt class="py-op">.</tt><tt id="link-2709" class="py-name"><a title="lxml.etree._Element.getnext" class="py-name" href="#" onclick="return doclink('link-2709', 'getnext', 'link-1334');">getnext</a></tt><tt class="py-op">(</tt><tt class="py-op">)</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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">None</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">c</tt><tt class="py-op">.</tt><tt id="link-2710" class="py-name"><a title="lxml.etree._Element.getnext" class="py-name" href="#" onclick="return doclink('link-2710', 'getnext', 'link-1334');">getnext</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2446"></a><tt class="py-lineno">2446</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_getprevious"></a><div id="ETreeOnlyTestCase.test_getprevious-def"><a name="L2447"></a><tt class="py-lineno">2447</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="L2448"></a><tt class="py-lineno">2448</tt>  <tt class="py-line">        <tt id="link-2711" 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-2714', 'Element', 'link-69');">Element</a></tt>    <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2715" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2711', 'Element', 'link-69');">Element</a></tt>    <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2712" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -8071,11 +8067,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2715', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2716" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2712', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2713" 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-2716', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L2436"></a><tt class="py-lineno">2436</tt>  <tt class="py-line">        <tt id="link-2717" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2717', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2718" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2713', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L2449"></a><tt class="py-lineno">2449</tt>  <tt class="py-line">        <tt id="link-2714" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2714', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2715" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -8083,30 +8079,30 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2718', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2719" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2719', 'SubElement', 'link-112');">SubElement</a></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">a</tt> <tt class="py-op">=</tt> <tt id="link-2720" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2715', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2716" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2716', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
+<a name="L2450"></a><tt class="py-lineno">2450</tt>  <tt class="py-line"> </tt>
+<a name="L2451"></a><tt class="py-lineno">2451</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2717" 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-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2439"></a><tt class="py-lineno">2439</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2721" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2721', 'SubElement', 'link-112');">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="L2440"></a><tt class="py-lineno">2440</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2722" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2722', 'SubElement', 'link-112');">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="L2441"></a><tt class="py-lineno">2441</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2723" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2723', 'SubElement', 'link-112');">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="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">a</tt><tt class="py-op">.</tt><tt id="link-2724" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-2724', 'getprevious', 'link-1326');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</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-name">b</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">c</tt><tt class="py-op">.</tt><tt id="link-2725" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-2725', 'getprevious', 'link-1326');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</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-name">None</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">b</tt><tt class="py-op">.</tt><tt id="link-2726" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-2726', 'getprevious', 'link-1326');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</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_itersiblings"></a><div id="ETreeOnlyTestCase.test_itersiblings-def"><a name="L2452"></a><tt class="py-lineno">2452</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="L2453"></a><tt class="py-lineno">2453</tt>  <tt class="py-line">        <tt id="link-2727" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2717', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'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">b</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-112');">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="L2453"></a><tt class="py-lineno">2453</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2719" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2719', 'SubElement', 'link-112');">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="L2454"></a><tt class="py-lineno">2454</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2720" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2720', 'SubElement', 'link-112');">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="L2455"></a><tt class="py-lineno">2455</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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">None</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">a</tt><tt class="py-op">.</tt><tt id="link-2721" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-2721', 'getprevious', 'link-1323');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2458"></a><tt class="py-lineno">2458</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2459"></a><tt class="py-lineno">2459</tt>  <tt class="py-line">            <tt class="py-name">b</tt><tt class="py-op">,</tt> </tt>
+<a name="L2460"></a><tt class="py-lineno">2460</tt>  <tt class="py-line">            <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2722" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-2722', 'getprevious', 'link-1323');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </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">b</tt><tt class="py-op">.</tt><tt id="link-2723" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-2723', 'getprevious', 'link-1323');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2464"></a><tt class="py-lineno">2464</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_itersiblings"></a><div id="ETreeOnlyTestCase.test_itersiblings-def"><a name="L2465"></a><tt class="py-lineno">2465</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="L2466"></a><tt class="py-lineno">2466</tt>  <tt class="py-line">        <tt id="link-2724" 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-2727', 'Element', 'link-69');">Element</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
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2724', 'Element', 'link-69');">Element</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
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -8114,11 +8110,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2728', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2729" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2725', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2726" 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-2729', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L2454"></a><tt class="py-lineno">2454</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-112');">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
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2726', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L2467"></a><tt class="py-lineno">2467</tt>  <tt class="py-line">        <tt id="link-2727" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2727', 'SubElement', 'link-112');">SubElement</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.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -8126,36 +8122,36 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2731', 'etree', 'link-3');">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-112');">SubElement</a></tt> </tt>
-<a name="L2455"></a><tt class="py-lineno">2455</tt>  <tt class="py-line"> </tt>
-<a name="L2456"></a><tt class="py-lineno">2456</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-2728', 'etree', 'link-3');">etree</a></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-112');">SubElement</a></tt> </tt>
+<a name="L2468"></a><tt class="py-lineno">2468</tt>  <tt class="py-line"> </tt>
+<a name="L2469"></a><tt class="py-lineno">2469</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2730" 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-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</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">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-112');">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="L2458"></a><tt class="py-lineno">2458</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2735" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2735', 'SubElement', 'link-112');">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="L2459"></a><tt class="py-lineno">2459</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2736" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2736', 'SubElement', 'link-112');">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="L2460"></a><tt class="py-lineno">2460</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2461"></a><tt class="py-lineno">2461</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</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">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2737" 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-2737', 'itersiblings', 'link-2737');">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="L2463"></a><tt class="py-lineno">2463</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2464"></a><tt class="py-lineno">2464</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="L2465"></a><tt class="py-lineno">2465</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-2738" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2738', 'itersiblings', 'link-2737');">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="L2466"></a><tt class="py-lineno">2466</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2467"></a><tt class="py-lineno">2467</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2468"></a><tt class="py-lineno">2468</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-2739" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2739', 'itersiblings', 'link-2737');">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="L2469"></a><tt class="py-lineno">2469</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2470"></a><tt class="py-lineno">2470</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="L2471"></a><tt class="py-lineno">2471</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-2740" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2740', 'itersiblings', 'link-2737');">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="L2472"></a><tt class="py-lineno">2472</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2473"></a><tt class="py-lineno">2473</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2474"></a><tt class="py-lineno">2474</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-2741" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2741', 'itersiblings', 'link-2737');">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="L2475"></a><tt class="py-lineno">2475</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_itersiblings_tag"></a><div id="ETreeOnlyTestCase.test_itersiblings_tag-def"><a name="L2476"></a><tt class="py-lineno">2476</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="L2477"></a><tt class="py-lineno">2477</tt>  <tt class="py-line">        <tt id="link-2742" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2730', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'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">b</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-112');">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="L2471"></a><tt class="py-lineno">2471</tt>  <tt class="py-line">        <tt class="py-name">c</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-112');">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="L2472"></a><tt class="py-lineno">2472</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2733" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2733', 'SubElement', 'link-112');">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="L2473"></a><tt class="py-lineno">2473</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2474"></a><tt class="py-lineno">2474</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2475"></a><tt class="py-lineno">2475</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" 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-2734', 'itersiblings', 'link-2734');">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="L2476"></a><tt class="py-lineno">2476</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2477"></a><tt class="py-lineno">2477</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="L2478"></a><tt class="py-lineno">2478</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-2735" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2735', 'itersiblings', 'link-2734');">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="L2479"></a><tt class="py-lineno">2479</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2480"></a><tt class="py-lineno">2480</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</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">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2736" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2736', 'itersiblings', 'link-2734');">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="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>
+<a name="L2483"></a><tt class="py-lineno">2483</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="L2484"></a><tt class="py-lineno">2484</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-2737" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2737', 'itersiblings', 'link-2734');">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="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>
+<a name="L2486"></a><tt class="py-lineno">2486</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</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">list</tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2738" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2738', 'itersiblings', 'link-2734');">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="L2488"></a><tt class="py-lineno">2488</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_itersiblings_tag"></a><div id="ETreeOnlyTestCase.test_itersiblings_tag-def"><a name="L2489"></a><tt class="py-lineno">2489</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="L2490"></a><tt class="py-lineno">2490</tt>  <tt class="py-line">        <tt id="link-2739" 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-2742', 'Element', 'link-69');">Element</a></tt>    <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2743" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2739', 'Element', 'link-69');">Element</a></tt>    <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2740" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -8163,11 +8159,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2743', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2744" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2740', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2741" 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-2744', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L2478"></a><tt class="py-lineno">2478</tt>  <tt class="py-line">        <tt id="link-2745" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2745', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2746" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2741', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L2491"></a><tt class="py-lineno">2491</tt>  <tt class="py-line">        <tt id="link-2742" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2742', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2743" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -8175,61 +8171,61 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2746', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2747" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2747', 'SubElement', 'link-112');">SubElement</a></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">a</tt> <tt class="py-op">=</tt> <tt id="link-2748" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2743', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2744" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2744', 'SubElement', 'link-112');">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-2745" 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-2748', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</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">b</tt> <tt class="py-op">=</tt> <tt id="link-2749" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2749', 'SubElement', 'link-112');">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="L2482"></a><tt class="py-lineno">2482</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2750" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2750', 'SubElement', 'link-112');">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="L2483"></a><tt class="py-lineno">2483</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2751" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2751', 'SubElement', 'link-112');">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="L2484"></a><tt class="py-lineno">2484</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2485"></a><tt class="py-lineno">2485</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</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">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.itersiblings" class="py-name" href="#" onclick="return doclink('link-2752', 'itersiblings', 'link-2737');">itersiblings</a></tt><tt class="py-op">(</tt><tt id="link-2753" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2745', 'Element', 'link-69');">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-2746" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2746', 'SubElement', 'link-112');">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-2747" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2747', 'SubElement', 'link-112');">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-2748" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2748', 'SubElement', 'link-112');">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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2498"></a><tt class="py-lineno">2498</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2499"></a><tt class="py-lineno">2499</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-2749" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2749', 'itersiblings', 'link-2734');">itersiblings</a></tt><tt class="py-op">(</tt><tt id="link-2750" 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-2753', 'tag', 'link-73');">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="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>
-<a name="L2488"></a><tt class="py-lineno">2488</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="L2489"></a><tt class="py-lineno">2489</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.itersiblings" class="py-name" href="#" onclick="return doclink('link-2754', 'itersiblings', 'link-2737');">itersiblings</a></tt><tt class="py-op">(</tt><tt id="link-2755" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2750', 'tag', 'link-73');">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="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">c</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">b</tt><tt class="py-op">.</tt><tt id="link-2751" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2751', 'itersiblings', 'link-2734');">itersiblings</a></tt><tt class="py-op">(</tt><tt id="link-2752" 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-2755', 'tag', 'link-73');">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="L2490"></a><tt class="py-lineno">2490</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2491"></a><tt class="py-lineno">2491</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="L2492"></a><tt class="py-lineno">2492</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-2756" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2756', 'itersiblings', 'link-2737');">itersiblings</a></tt><tt class="py-op">(</tt><tt id="link-2757" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2752', 'tag', 'link-73');">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="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-name">c</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">b</tt><tt class="py-op">.</tt><tt id="link-2753" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2753', 'itersiblings', 'link-2734');">itersiblings</a></tt><tt class="py-op">(</tt><tt id="link-2754" 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-2757', 'tag', 'link-73');">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="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>
-<a name="L2494"></a><tt class="py-lineno">2494</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="L2495"></a><tt class="py-lineno">2495</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-2758" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2758', 'itersiblings', 'link-2737');">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-2759" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2754', 'tag', 'link-73');">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="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">b</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">c</tt><tt class="py-op">.</tt><tt id="link-2755" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2755', 'itersiblings', 'link-2734');">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-2756" 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-2759', 'tag', 'link-73');">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="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 class="py-op">[</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">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2760" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2760', 'itersiblings', 'link-2737');">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-2761" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2756', 'tag', 'link-73');">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="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-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-2757" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2757', 'itersiblings', 'link-2734');">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-2758" 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-2761', 'tag', 'link-73');">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="L2499"></a><tt class="py-lineno">2499</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_itersiblings_tag_multiple"></a><div id="ETreeOnlyTestCase.test_itersiblings_tag_multiple-def"><a name="L2500"></a><tt class="py-lineno">2500</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="L2501"></a><tt class="py-lineno">2501</tt>  <tt class="py-line">        <tt id="link-2762" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2758', 'tag', 'link-73');">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="L2512"></a><tt class="py-lineno">2512</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_itersiblings_tag_multiple"></a><div id="ETreeOnlyTestCase.test_itersiblings_tag_multiple-def"><a name="L2513"></a><tt class="py-lineno">2513</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="L2514"></a><tt class="py-lineno">2514</tt>  <tt class="py-line">        <tt id="link-2759" 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-2762', 'Element', 'link-69');">Element</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.Element" class="py-name" href="#" onclick="return doclink('link-2759', 'Element', 'link-69');">Element</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.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -8237,11 +8233,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2763', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2764" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2760', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2761" 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-2764', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L2502"></a><tt class="py-lineno">2502</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-112');">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
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2761', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L2515"></a><tt class="py-lineno">2515</tt>  <tt class="py-line">        <tt id="link-2762" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2762', 'SubElement', 'link-112');">SubElement</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.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -8249,51 +8245,51 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2766', 'etree', 'link-3');">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-112');">SubElement</a></tt> </tt>
-<a name="L2503"></a><tt class="py-lineno">2503</tt>  <tt class="py-line"> </tt>
-<a name="L2504"></a><tt class="py-lineno">2504</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.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2763', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2764" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2764', 'SubElement', 'link-112');">SubElement</a></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">a</tt> <tt class="py-op">=</tt> <tt id="link-2765" 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-2768', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</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">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-112');">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="L2506"></a><tt class="py-lineno">2506</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2770" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2770', 'SubElement', 'link-112');">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="L2507"></a><tt class="py-lineno">2507</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2771" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2771', 'SubElement', 'link-112');">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="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-2772" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2772', 'SubElement', 'link-112');">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="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-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">a</tt><tt class="py-op">.</tt><tt id="link-2773" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2773', 'itersiblings', 'link-2737');">itersiblings</a></tt><tt class="py-op">(</tt><tt id="link-2774" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2765', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2518"></a><tt class="py-lineno">2518</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2766" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2766', 'SubElement', 'link-112');">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="L2519"></a><tt class="py-lineno">2519</tt>  <tt class="py-line">        <tt class="py-name">c</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-112');">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="L2520"></a><tt class="py-lineno">2520</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2768" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2768', 'SubElement', 'link-112');">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="L2521"></a><tt class="py-lineno">2521</tt>  <tt class="py-line">        <tt class="py-name">e</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-112');">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="L2522"></a><tt class="py-lineno">2522</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2523"></a><tt class="py-lineno">2523</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</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">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2770" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2770', 'itersiblings', 'link-2734');">itersiblings</a></tt><tt class="py-op">(</tt><tt id="link-2771" 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-2774', 'tag', 'link-73');">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="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-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="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">b</tt><tt class="py-op">.</tt><tt id="link-2775" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2775', 'itersiblings', 'link-2737');">itersiblings</a></tt><tt class="py-op">(</tt><tt id="link-2776" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2771', 'tag', 'link-73');">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="L2525"></a><tt class="py-lineno">2525</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2526"></a><tt class="py-lineno">2526</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="L2527"></a><tt class="py-lineno">2527</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-2772" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2772', 'itersiblings', 'link-2734');">itersiblings</a></tt><tt class="py-op">(</tt><tt id="link-2773" 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-2776', 'tag', 'link-73');">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="L2515"></a><tt class="py-lineno">2515</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2516"></a><tt class="py-lineno">2516</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="L2517"></a><tt class="py-lineno">2517</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-2777" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2777', 'itersiblings', 'link-2737');">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-2778" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2773', 'tag', 'link-73');">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="L2528"></a><tt class="py-lineno">2528</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2529"></a><tt class="py-lineno">2529</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="L2530"></a><tt class="py-lineno">2530</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-2774" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2774', 'itersiblings', 'link-2734');">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-2775" 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-2778', 'tag', 'link-73');">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="L2518"></a><tt class="py-lineno">2518</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2519"></a><tt class="py-lineno">2519</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="L2520"></a><tt class="py-lineno">2520</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-2779" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2779', 'itersiblings', 'link-2737');">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-2780" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2775', 'tag', 'link-73');">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="L2531"></a><tt class="py-lineno">2531</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2532"></a><tt class="py-lineno">2532</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="L2533"></a><tt class="py-lineno">2533</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-2776" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2776', 'itersiblings', 'link-2734');">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-2777" 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-2780', 'tag', 'link-73');">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="L2521"></a><tt class="py-lineno">2521</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_parseid"></a><div id="ETreeOnlyTestCase.test_parseid-def"><a name="L2522"></a><tt class="py-lineno">2522</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="L2523"></a><tt class="py-lineno">2523</tt>  <tt class="py-line">        <tt id="link-2781" 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-2781', 'parseid', 'link-2781');">parseid</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2782" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2777', 'tag', 'link-73');">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="L2534"></a><tt class="py-lineno">2534</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_parseid"></a><div id="ETreeOnlyTestCase.test_parseid-def"><a name="L2535"></a><tt class="py-lineno">2535</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="L2536"></a><tt class="py-lineno">2536</tt>  <tt class="py-line">        <tt id="link-2778" 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-2778', 'parseid', 'link-2778');">parseid</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2779" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -8301,11 +8297,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2782', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2783" class="py-name"><a title="lxml.etree.parseid" class="py-name" href="#" onclick="return doclink('link-2783', 'parseid', 'link-2781');">parseid</a></tt> </tt>
-<a name="L2524"></a><tt class="py-lineno">2524</tt>  <tt class="py-line">        <tt id="link-2784" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2779', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2780" class="py-name"><a title="lxml.etree.parseid" class="py-name" href="#" onclick="return doclink('link-2780', 'parseid', 'link-2778');">parseid</a></tt> </tt>
+<a name="L2537"></a><tt class="py-lineno">2537</tt>  <tt class="py-line">        <tt id="link-2781" 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-2784', 'XML', 'link-234');">XML</a></tt>     <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2785" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2781', 'XML', 'link-234');">XML</a></tt>     <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2782" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -8313,49 +8309,49 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2785', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2786" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2782', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2783" 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-234');">XML</a></tt> </tt>
-<a name="L2525"></a><tt class="py-lineno">2525</tt>  <tt class="py-line">        <tt class="py-name">xml_text</tt> <tt class="py-op">=</tt> <tt id="link-2787" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2787', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''</tt> </tt>
-<a name="L2526"></a><tt class="py-lineno">2526</tt>  <tt class="py-line"><tt class="py-string">        &lt;!DOCTYPE document [</tt> </tt>
-<a name="L2527"></a><tt class="py-lineno">2527</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ELEMENT document (h1,p)*&gt;</tt> </tt>
-<a name="L2528"></a><tt class="py-lineno">2528</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ELEMENT h1 (#PCDATA)&gt;</tt> </tt>
-<a name="L2529"></a><tt class="py-lineno">2529</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ATTLIST h1 myid ID #REQUIRED&gt;</tt> </tt>
-<a name="L2530"></a><tt class="py-lineno">2530</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ELEMENT p  (#PCDATA)&gt;</tt> </tt>
-<a name="L2531"></a><tt class="py-lineno">2531</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ATTLIST p  someid ID #REQUIRED&gt;</tt> </tt>
-<a name="L2532"></a><tt class="py-lineno">2532</tt>  <tt class="py-line"><tt class="py-string">        ]&gt;</tt> </tt>
-<a name="L2533"></a><tt class="py-lineno">2533</tt>  <tt class="py-line"><tt class="py-string">        &lt;document&gt;</tt> </tt>
-<a name="L2534"></a><tt class="py-lineno">2534</tt>  <tt class="py-line"><tt class="py-string">          &lt;h1 myid="chapter1"&gt;...&lt;/h1&gt;</tt> </tt>
-<a name="L2535"></a><tt class="py-lineno">2535</tt>  <tt class="py-line"><tt class="py-string">          &lt;p id="note1" class="note"&gt;...&lt;/p&gt;</tt> </tt>
-<a name="L2536"></a><tt class="py-lineno">2536</tt>  <tt class="py-line"><tt class="py-string">          &lt;p&gt;Regular paragraph.&lt;/p&gt;</tt> </tt>
-<a name="L2537"></a><tt class="py-lineno">2537</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="L2538"></a><tt class="py-lineno">2538</tt>  <tt class="py-line"><tt class="py-string">          &lt;p someid="warn1" class="warning"&gt;...&lt;/p&gt;</tt> </tt>
-<a name="L2539"></a><tt class="py-lineno">2539</tt>  <tt class="py-line"><tt class="py-string">        &lt;/document&gt;</tt> </tt>
-<a name="L2540"></a><tt class="py-lineno">2540</tt>  <tt class="py-line"><tt class="py-string">        '''</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">tree</tt><tt class="py-op">,</tt> <tt class="py-name">dic</tt> <tt class="py-op">=</tt> <tt id="link-2788" class="py-name"><a title="lxml.etree.parseid" class="py-name" href="#" onclick="return doclink('link-2788', 'parseid', 'link-2781');">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="L2543"></a><tt class="py-lineno">2543</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-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2790" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2790', 'getroot', 'link-805');">getroot</a></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">root2</tt> <tt class="py-op">=</tt> <tt id="link-2791" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2783', 'XML', 'link-234');">XML</a></tt> </tt>
+<a name="L2538"></a><tt class="py-lineno">2538</tt>  <tt class="py-line">        <tt class="py-name">xml_text</tt> <tt class="py-op">=</tt> <tt id="link-2784" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2784', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''</tt> </tt>
+<a name="L2539"></a><tt class="py-lineno">2539</tt>  <tt class="py-line"><tt class="py-string">        &lt;!DOCTYPE document [</tt> </tt>
+<a name="L2540"></a><tt class="py-lineno">2540</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ELEMENT document (h1,p)*&gt;</tt> </tt>
+<a name="L2541"></a><tt class="py-lineno">2541</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ELEMENT h1 (#PCDATA)&gt;</tt> </tt>
+<a name="L2542"></a><tt class="py-lineno">2542</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ATTLIST h1 myid ID #REQUIRED&gt;</tt> </tt>
+<a name="L2543"></a><tt class="py-lineno">2543</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ELEMENT p  (#PCDATA)&gt;</tt> </tt>
+<a name="L2544"></a><tt class="py-lineno">2544</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ATTLIST p  someid ID #REQUIRED&gt;</tt> </tt>
+<a name="L2545"></a><tt class="py-lineno">2545</tt>  <tt class="py-line"><tt class="py-string">        ]&gt;</tt> </tt>
+<a name="L2546"></a><tt class="py-lineno">2546</tt>  <tt class="py-line"><tt class="py-string">        &lt;document&gt;</tt> </tt>
+<a name="L2547"></a><tt class="py-lineno">2547</tt>  <tt class="py-line"><tt class="py-string">          &lt;h1 myid="chapter1"&gt;...&lt;/h1&gt;</tt> </tt>
+<a name="L2548"></a><tt class="py-lineno">2548</tt>  <tt class="py-line"><tt class="py-string">          &lt;p id="note1" class="note"&gt;...&lt;/p&gt;</tt> </tt>
+<a name="L2549"></a><tt class="py-lineno">2549</tt>  <tt class="py-line"><tt class="py-string">          &lt;p&gt;Regular paragraph.&lt;/p&gt;</tt> </tt>
+<a name="L2550"></a><tt class="py-lineno">2550</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="L2551"></a><tt class="py-lineno">2551</tt>  <tt class="py-line"><tt class="py-string">          &lt;p someid="warn1" class="warning"&gt;...&lt;/p&gt;</tt> </tt>
+<a name="L2552"></a><tt class="py-lineno">2552</tt>  <tt class="py-line"><tt class="py-string">        &lt;/document&gt;</tt> </tt>
+<a name="L2553"></a><tt class="py-lineno">2553</tt>  <tt class="py-line"><tt class="py-string">        '''</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">tree</tt><tt class="py-op">,</tt> <tt class="py-name">dic</tt> <tt class="py-op">=</tt> <tt id="link-2785" class="py-name"><a title="lxml.etree.parseid" class="py-name" href="#" onclick="return doclink('link-2785', 'parseid', 'link-2778');">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="L2556"></a><tt class="py-lineno">2556</tt>  <tt class="py-line">        <tt id="link-2786" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2786', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2787" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2787', 'getroot', 'link-802');">getroot</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">root2</tt> <tt class="py-op">=</tt> <tt id="link-2788" 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-2791', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt class="py-name">xml_text</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 class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2792" 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-2792', '_writeElement', 'link-370');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-2793" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2793', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2546"></a><tt class="py-lineno">2546</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2794" 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-2794', '_writeElement', 'link-370');">_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="L2547"></a><tt class="py-lineno">2547</tt>  <tt class="py-line">        <tt class="py-name">expected</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-string">"chapter1"</tt> <tt class="py-op">:</tt> <tt id="link-2795" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2795', 'root', 'link-247');">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="L2549"></a><tt class="py-lineno">2549</tt>  <tt class="py-line">            <tt class="py-string">"xmlid"</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-247');">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="L2550"></a><tt class="py-lineno">2550</tt>  <tt class="py-line">            <tt class="py-string">"warn1"</tt>    <tt class="py-op">:</tt> <tt id="link-2797" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2797', 'root', 'link-247');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">4</tt><tt class="py-op">]</tt> </tt>
-<a name="L2551"></a><tt class="py-lineno">2551</tt>  <tt class="py-line">            <tt class="py-op">}</tt> </tt>
-<a name="L2552"></a><tt class="py-lineno">2552</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="L2553"></a><tt class="py-lineno">2553</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="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">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="L2555"></a><tt class="py-lineno">2555</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2798" 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-2798', '_checkIDDict', 'link-2798');">_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="L2556"></a><tt class="py-lineno">2556</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_XMLDTDID"></a><div id="ETreeOnlyTestCase.test_XMLDTDID-def"><a name="L2557"></a><tt class="py-lineno">2557</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="L2558"></a><tt class="py-lineno">2558</tt>  <tt class="py-line">        <tt id="link-2799" 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-2799', 'XMLDTDID', 'link-2799');">XMLDTDID</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2800" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2788', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt class="py-name">xml_text</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 class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2789" 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-2789', '_writeElement', 'link-367');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-2790" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2790', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2559"></a><tt class="py-lineno">2559</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2791" 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-2791', '_writeElement', 'link-367');">_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="L2560"></a><tt class="py-lineno">2560</tt>  <tt class="py-line">        <tt class="py-name">expected</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-string">"chapter1"</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-247');">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="L2562"></a><tt class="py-lineno">2562</tt>  <tt class="py-line">            <tt class="py-string">"xmlid"</tt>    <tt class="py-op">:</tt> <tt id="link-2793" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2793', 'root', 'link-247');">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="L2563"></a><tt class="py-lineno">2563</tt>  <tt class="py-line">            <tt class="py-string">"warn1"</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-247');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">4</tt><tt class="py-op">]</tt> </tt>
+<a name="L2564"></a><tt class="py-lineno">2564</tt>  <tt class="py-line">            <tt class="py-op">}</tt> </tt>
+<a name="L2565"></a><tt class="py-lineno">2565</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="L2566"></a><tt class="py-lineno">2566</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="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">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="L2568"></a><tt class="py-lineno">2568</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2795" 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-2795', '_checkIDDict', 'link-2795');">_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="L2569"></a><tt class="py-lineno">2569</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_XMLDTDID"></a><div id="ETreeOnlyTestCase.test_XMLDTDID-def"><a name="L2570"></a><tt class="py-lineno">2570</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="L2571"></a><tt class="py-lineno">2571</tt>  <tt class="py-line">        <tt id="link-2796" 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-2796', 'XMLDTDID', 'link-2796');">XMLDTDID</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2797" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -8363,11 +8359,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2800', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2801" class="py-name"><a title="lxml.etree.XMLDTDID" class="py-name" href="#" onclick="return doclink('link-2801', 'XMLDTDID', 'link-2799');">XMLDTDID</a></tt> </tt>
-<a name="L2559"></a><tt class="py-lineno">2559</tt>  <tt class="py-line">        <tt id="link-2802" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2797', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2798" class="py-name"><a title="lxml.etree.XMLDTDID" class="py-name" href="#" onclick="return doclink('link-2798', 'XMLDTDID', 'link-2796');">XMLDTDID</a></tt> </tt>
+<a name="L2572"></a><tt class="py-lineno">2572</tt>  <tt class="py-line">        <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-2802', 'XML', 'link-234');">XML</a></tt>      <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2803" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2799', 'XML', 'link-234');">XML</a></tt>      <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2800" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -8375,48 +8371,48 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2803', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2804" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2800', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2801" 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-2804', 'XML', 'link-234');">XML</a></tt> </tt>
-<a name="L2560"></a><tt class="py-lineno">2560</tt>  <tt class="py-line">        <tt class="py-name">xml_text</tt> <tt class="py-op">=</tt> <tt id="link-2805" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2805', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''</tt> </tt>
-<a name="L2561"></a><tt class="py-lineno">2561</tt>  <tt class="py-line"><tt class="py-string">        &lt;!DOCTYPE document [</tt> </tt>
-<a name="L2562"></a><tt class="py-lineno">2562</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ELEMENT document (h1,p)*&gt;</tt> </tt>
-<a name="L2563"></a><tt class="py-lineno">2563</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ELEMENT h1 (#PCDATA)&gt;</tt> </tt>
-<a name="L2564"></a><tt class="py-lineno">2564</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ATTLIST h1 myid ID #REQUIRED&gt;</tt> </tt>
-<a name="L2565"></a><tt class="py-lineno">2565</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ELEMENT p  (#PCDATA)&gt;</tt> </tt>
-<a name="L2566"></a><tt class="py-lineno">2566</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ATTLIST p  someid ID #REQUIRED&gt;</tt> </tt>
-<a name="L2567"></a><tt class="py-lineno">2567</tt>  <tt class="py-line"><tt class="py-string">        ]&gt;</tt> </tt>
-<a name="L2568"></a><tt class="py-lineno">2568</tt>  <tt class="py-line"><tt class="py-string">        &lt;document&gt;</tt> </tt>
-<a name="L2569"></a><tt class="py-lineno">2569</tt>  <tt class="py-line"><tt class="py-string">          &lt;h1 myid="chapter1"&gt;...&lt;/h1&gt;</tt> </tt>
-<a name="L2570"></a><tt class="py-lineno">2570</tt>  <tt class="py-line"><tt class="py-string">          &lt;p id="note1" class="note"&gt;...&lt;/p&gt;</tt> </tt>
-<a name="L2571"></a><tt class="py-lineno">2571</tt>  <tt class="py-line"><tt class="py-string">          &lt;p&gt;Regular paragraph.&lt;/p&gt;</tt> </tt>
-<a name="L2572"></a><tt class="py-lineno">2572</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="L2573"></a><tt class="py-lineno">2573</tt>  <tt class="py-line"><tt class="py-string">          &lt;p someid="warn1" class="warning"&gt;...&lt;/p&gt;</tt> </tt>
-<a name="L2574"></a><tt class="py-lineno">2574</tt>  <tt class="py-line"><tt class="py-string">        &lt;/document&gt;</tt> </tt>
-<a name="L2575"></a><tt class="py-lineno">2575</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt> </tt>
-<a name="L2576"></a><tt class="py-lineno">2576</tt>  <tt class="py-line"> </tt>
-<a name="L2577"></a><tt class="py-lineno">2577</tt>  <tt class="py-line">        <tt id="link-2806" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2806', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">dic</tt> <tt class="py-op">=</tt> <tt id="link-2807" class="py-name"><a title="lxml.etree.XMLDTDID" class="py-name" href="#" onclick="return doclink('link-2807', 'XMLDTDID', 'link-2799');">XMLDTDID</a></tt><tt class="py-op">(</tt><tt class="py-name">xml_text</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">root2</tt> <tt class="py-op">=</tt> <tt id="link-2808" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2801', 'XML', 'link-234');">XML</a></tt> </tt>
+<a name="L2573"></a><tt class="py-lineno">2573</tt>  <tt class="py-line">        <tt class="py-name">xml_text</tt> <tt class="py-op">=</tt> <tt id="link-2802" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2802', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''</tt> </tt>
+<a name="L2574"></a><tt class="py-lineno">2574</tt>  <tt class="py-line"><tt class="py-string">        &lt;!DOCTYPE document [</tt> </tt>
+<a name="L2575"></a><tt class="py-lineno">2575</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ELEMENT document (h1,p)*&gt;</tt> </tt>
+<a name="L2576"></a><tt class="py-lineno">2576</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ELEMENT h1 (#PCDATA)&gt;</tt> </tt>
+<a name="L2577"></a><tt class="py-lineno">2577</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ATTLIST h1 myid ID #REQUIRED&gt;</tt> </tt>
+<a name="L2578"></a><tt class="py-lineno">2578</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ELEMENT p  (#PCDATA)&gt;</tt> </tt>
+<a name="L2579"></a><tt class="py-lineno">2579</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ATTLIST p  someid ID #REQUIRED&gt;</tt> </tt>
+<a name="L2580"></a><tt class="py-lineno">2580</tt>  <tt class="py-line"><tt class="py-string">        ]&gt;</tt> </tt>
+<a name="L2581"></a><tt class="py-lineno">2581</tt>  <tt class="py-line"><tt class="py-string">        &lt;document&gt;</tt> </tt>
+<a name="L2582"></a><tt class="py-lineno">2582</tt>  <tt class="py-line"><tt class="py-string">          &lt;h1 myid="chapter1"&gt;...&lt;/h1&gt;</tt> </tt>
+<a name="L2583"></a><tt class="py-lineno">2583</tt>  <tt class="py-line"><tt class="py-string">          &lt;p id="note1" class="note"&gt;...&lt;/p&gt;</tt> </tt>
+<a name="L2584"></a><tt class="py-lineno">2584</tt>  <tt class="py-line"><tt class="py-string">          &lt;p&gt;Regular paragraph.&lt;/p&gt;</tt> </tt>
+<a name="L2585"></a><tt class="py-lineno">2585</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="L2586"></a><tt class="py-lineno">2586</tt>  <tt class="py-line"><tt class="py-string">          &lt;p someid="warn1" class="warning"&gt;...&lt;/p&gt;</tt> </tt>
+<a name="L2587"></a><tt class="py-lineno">2587</tt>  <tt class="py-line"><tt class="py-string">        &lt;/document&gt;</tt> </tt>
+<a name="L2588"></a><tt class="py-lineno">2588</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt> </tt>
+<a name="L2589"></a><tt class="py-lineno">2589</tt>  <tt class="py-line"> </tt>
+<a name="L2590"></a><tt class="py-lineno">2590</tt>  <tt class="py-line">        <tt id="link-2803" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2803', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">dic</tt> <tt class="py-op">=</tt> <tt id="link-2804" class="py-name"><a title="lxml.etree.XMLDTDID" class="py-name" href="#" onclick="return doclink('link-2804', 'XMLDTDID', 'link-2796');">XMLDTDID</a></tt><tt class="py-op">(</tt><tt class="py-name">xml_text</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">root2</tt> <tt class="py-op">=</tt> <tt id="link-2805" 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-2808', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt class="py-name">xml_text</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 class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2809" 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-2809', '_writeElement', 'link-370');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-2810" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2810', 'root', 'link-247');">root</a></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">self</tt><tt class="py-op">.</tt><tt id="link-2811" 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-2811', '_writeElement', 'link-370');">_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="L2581"></a><tt class="py-lineno">2581</tt>  <tt class="py-line">        <tt class="py-name">expected</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
-<a name="L2582"></a><tt class="py-lineno">2582</tt>  <tt class="py-line">            <tt class="py-string">"chapter1"</tt> <tt class="py-op">:</tt> <tt id="link-2812" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2812', 'root', 'link-247');">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="L2583"></a><tt class="py-lineno">2583</tt>  <tt class="py-line">            <tt class="py-string">"xmlid"</tt>    <tt class="py-op">:</tt> <tt id="link-2813" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2813', 'root', 'link-247');">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="L2584"></a><tt class="py-lineno">2584</tt>  <tt class="py-line">            <tt class="py-string">"warn1"</tt>    <tt class="py-op">:</tt> <tt id="link-2814" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2814', 'root', 'link-247');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">4</tt><tt class="py-op">]</tt> </tt>
-<a name="L2585"></a><tt class="py-lineno">2585</tt>  <tt class="py-line">            <tt class="py-op">}</tt> </tt>
-<a name="L2586"></a><tt class="py-lineno">2586</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="L2587"></a><tt class="py-lineno">2587</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="L2588"></a><tt class="py-lineno">2588</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="L2589"></a><tt class="py-lineno">2589</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2815" class="py-name"><a title="lxml.tests.test_etree.ETreeOnlyTestCase._checkIDDict" class="py-name" href="#" onclick="return doclink('link-2815', '_checkIDDict', 'link-2798');">_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="L2590"></a><tt class="py-lineno">2590</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_XMLDTDID_empty"></a><div id="ETreeOnlyTestCase.test_XMLDTDID_empty-def"><a name="L2591"></a><tt class="py-lineno">2591</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="L2592"></a><tt class="py-lineno">2592</tt>  <tt class="py-line">        <tt id="link-2816" class="py-name"><a title="lxml.etree.XMLDTDID" class="py-name" href="#" onclick="return doclink('link-2816', 'XMLDTDID', 'link-2799');">XMLDTDID</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2817" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2805', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt class="py-name">xml_text</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">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-2806" 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-2806', '_writeElement', 'link-367');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-2807" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2807', 'root', 'link-247');">root</a></tt><tt class="py-op">)</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">self</tt><tt class="py-op">.</tt><tt id="link-2808" 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-2808', '_writeElement', 'link-367');">_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="L2594"></a><tt class="py-lineno">2594</tt>  <tt class="py-line">        <tt class="py-name">expected</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L2595"></a><tt class="py-lineno">2595</tt>  <tt class="py-line">            <tt class="py-string">"chapter1"</tt> <tt class="py-op">:</tt> <tt id="link-2809" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2809', 'root', 'link-247');">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="L2596"></a><tt class="py-lineno">2596</tt>  <tt class="py-line">            <tt class="py-string">"xmlid"</tt>    <tt class="py-op">:</tt> <tt id="link-2810" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2810', 'root', 'link-247');">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="L2597"></a><tt class="py-lineno">2597</tt>  <tt class="py-line">            <tt class="py-string">"warn1"</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-247');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">4</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>
+<a name="L2599"></a><tt class="py-lineno">2599</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="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">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="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">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="L2602"></a><tt class="py-lineno">2602</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2812" class="py-name"><a title="lxml.tests.test_etree.ETreeOnlyTestCase._checkIDDict" class="py-name" href="#" onclick="return doclink('link-2812', '_checkIDDict', 'link-2795');">_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="L2603"></a><tt class="py-lineno">2603</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_XMLDTDID_empty"></a><div id="ETreeOnlyTestCase.test_XMLDTDID_empty-def"><a name="L2604"></a><tt class="py-lineno">2604</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="L2605"></a><tt class="py-lineno">2605</tt>  <tt class="py-line">        <tt id="link-2813" class="py-name"><a title="lxml.etree.XMLDTDID" class="py-name" href="#" onclick="return doclink('link-2813', 'XMLDTDID', 'link-2796');">XMLDTDID</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2814" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -8424,11 +8420,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2817', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2818" class="py-name"><a title="lxml.etree.XMLDTDID" class="py-name" href="#" onclick="return doclink('link-2818', 'XMLDTDID', 'link-2799');">XMLDTDID</a></tt> </tt>
-<a name="L2593"></a><tt class="py-lineno">2593</tt>  <tt class="py-line">        <tt id="link-2819" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2814', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2815" class="py-name"><a title="lxml.etree.XMLDTDID" class="py-name" href="#" onclick="return doclink('link-2815', 'XMLDTDID', 'link-2796');">XMLDTDID</a></tt> </tt>
+<a name="L2606"></a><tt class="py-lineno">2606</tt>  <tt class="py-line">        <tt id="link-2816" 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-2819', 'XML', 'link-234');">XML</a></tt>      <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2820" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2816', 'XML', 'link-234');">XML</a></tt>      <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2817" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -8436,33 +8432,33 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2820', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2821" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2817', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2818" 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-2821', 'XML', 'link-234');">XML</a></tt> </tt>
-<a name="L2594"></a><tt class="py-lineno">2594</tt>  <tt class="py-line">        <tt class="py-name">xml_text</tt> <tt class="py-op">=</tt> <tt id="link-2822" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2822', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''</tt> </tt>
-<a name="L2595"></a><tt class="py-lineno">2595</tt>  <tt class="py-line"><tt class="py-string">        &lt;document&gt;</tt> </tt>
-<a name="L2596"></a><tt class="py-lineno">2596</tt>  <tt class="py-line"><tt class="py-string">          &lt;h1 myid="chapter1"&gt;...&lt;/h1&gt;</tt> </tt>
-<a name="L2597"></a><tt class="py-lineno">2597</tt>  <tt class="py-line"><tt class="py-string">          &lt;p id="note1" class="note"&gt;...&lt;/p&gt;</tt> </tt>
-<a name="L2598"></a><tt class="py-lineno">2598</tt>  <tt class="py-line"><tt class="py-string">          &lt;p&gt;Regular paragraph.&lt;/p&gt;</tt> </tt>
-<a name="L2599"></a><tt class="py-lineno">2599</tt>  <tt class="py-line"><tt class="py-string">          &lt;p someid="warn1" class="warning"&gt;...&lt;/p&gt;</tt> </tt>
-<a name="L2600"></a><tt class="py-lineno">2600</tt>  <tt class="py-line"><tt class="py-string">        &lt;/document&gt;</tt> </tt>
-<a name="L2601"></a><tt class="py-lineno">2601</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt> </tt>
-<a name="L2602"></a><tt class="py-lineno">2602</tt>  <tt class="py-line"> </tt>
-<a name="L2603"></a><tt class="py-lineno">2603</tt>  <tt class="py-line">        <tt id="link-2823" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2823', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">dic</tt> <tt class="py-op">=</tt> <tt id="link-2824" class="py-name"><a title="lxml.etree.XMLDTDID" class="py-name" href="#" onclick="return doclink('link-2824', 'XMLDTDID', 'link-2799');">XMLDTDID</a></tt><tt class="py-op">(</tt><tt class="py-name">xml_text</tt><tt class="py-op">)</tt> </tt>
-<a name="L2604"></a><tt class="py-lineno">2604</tt>  <tt class="py-line">        <tt class="py-name">root2</tt> <tt class="py-op">=</tt> <tt id="link-2825" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2818', 'XML', 'link-234');">XML</a></tt> </tt>
+<a name="L2607"></a><tt class="py-lineno">2607</tt>  <tt class="py-line">        <tt class="py-name">xml_text</tt> <tt class="py-op">=</tt> <tt id="link-2819" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2819', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''</tt> </tt>
+<a name="L2608"></a><tt class="py-lineno">2608</tt>  <tt class="py-line"><tt class="py-string">        &lt;document&gt;</tt> </tt>
+<a name="L2609"></a><tt class="py-lineno">2609</tt>  <tt class="py-line"><tt class="py-string">          &lt;h1 myid="chapter1"&gt;...&lt;/h1&gt;</tt> </tt>
+<a name="L2610"></a><tt class="py-lineno">2610</tt>  <tt class="py-line"><tt class="py-string">          &lt;p id="note1" class="note"&gt;...&lt;/p&gt;</tt> </tt>
+<a name="L2611"></a><tt class="py-lineno">2611</tt>  <tt class="py-line"><tt class="py-string">          &lt;p&gt;Regular paragraph.&lt;/p&gt;</tt> </tt>
+<a name="L2612"></a><tt class="py-lineno">2612</tt>  <tt class="py-line"><tt class="py-string">          &lt;p someid="warn1" class="warning"&gt;...&lt;/p&gt;</tt> </tt>
+<a name="L2613"></a><tt class="py-lineno">2613</tt>  <tt class="py-line"><tt class="py-string">        &lt;/document&gt;</tt> </tt>
+<a name="L2614"></a><tt class="py-lineno">2614</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt> </tt>
+<a name="L2615"></a><tt class="py-lineno">2615</tt>  <tt class="py-line"> </tt>
+<a name="L2616"></a><tt class="py-lineno">2616</tt>  <tt class="py-line">        <tt id="link-2820" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2820', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">dic</tt> <tt class="py-op">=</tt> <tt id="link-2821" class="py-name"><a title="lxml.etree.XMLDTDID" class="py-name" href="#" onclick="return doclink('link-2821', 'XMLDTDID', 'link-2796');">XMLDTDID</a></tt><tt class="py-op">(</tt><tt class="py-name">xml_text</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">root2</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-2825', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt class="py-name">xml_text</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">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-2826" 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-2826', '_writeElement', 'link-370');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-2827" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2827', 'root', 'link-247');">root</a></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 id="link-2828" 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-2828', '_writeElement', 'link-370');">_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="L2607"></a><tt class="py-lineno">2607</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="L2608"></a><tt class="py-lineno">2608</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2829" class="py-name"><a title="lxml.tests.test_etree.ETreeOnlyTestCase._checkIDDict" class="py-name" href="#" onclick="return doclink('link-2829', '_checkIDDict', 'link-2798');">_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="L2609"></a><tt class="py-lineno">2609</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_XMLDTDID_no_id_dict"></a><div id="ETreeOnlyTestCase.test_XMLDTDID_no_id_dict-def"><a name="L2610"></a><tt class="py-lineno">2610</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_XMLDTDID_no_id_dict-toggle" onclick="return toggle('ETreeOnlyTestCase.test_XMLDTDID_no_id_dict');">-</a><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_no_id_dict">test_XMLDTDID_no_id_dict</a><tt class="py-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_no_id_dict-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_XMLDTDID_no_id_dict-expanded"><a name="L2611"></a><tt class="py-lineno">2611</tt>  <tt class="py-line">        <tt id="link-2830" class="py-name"><a title="lxml.etree.XMLDTDID" class="py-name" href="#" onclick="return doclink('link-2830', 'XMLDTDID', 'link-2799');">XMLDTDID</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2831" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2822', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt class="py-name">xml_text</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 class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2823" 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-2823', '_writeElement', 'link-367');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-2824" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2824', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2619"></a><tt class="py-lineno">2619</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2825" 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-2825', '_writeElement', 'link-367');">_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="L2620"></a><tt class="py-lineno">2620</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="L2621"></a><tt class="py-lineno">2621</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2826" class="py-name"><a title="lxml.tests.test_etree.ETreeOnlyTestCase._checkIDDict" class="py-name" href="#" onclick="return doclink('link-2826', '_checkIDDict', 'link-2795');">_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="L2622"></a><tt class="py-lineno">2622</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_XMLDTDID_no_id_dict"></a><div id="ETreeOnlyTestCase.test_XMLDTDID_no_id_dict-def"><a name="L2623"></a><tt class="py-lineno">2623</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_XMLDTDID_no_id_dict-toggle" onclick="return toggle('ETreeOnlyTestCase.test_XMLDTDID_no_id_dict');">-</a><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_no_id_dict">test_XMLDTDID_no_id_dict</a><tt class="py-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_no_id_dict-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_XMLDTDID_no_id_dict-expanded"><a name="L2624"></a><tt class="py-lineno">2624</tt>  <tt class="py-line">        <tt id="link-2827" class="py-name"><a title="lxml.etree.XMLDTDID" class="py-name" href="#" onclick="return doclink('link-2827', 'XMLDTDID', 'link-2796');">XMLDTDID</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2828" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -8470,11 +8466,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2831', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2832" class="py-name"><a title="lxml.etree.XMLDTDID" class="py-name" href="#" onclick="return doclink('link-2832', 'XMLDTDID', 'link-2799');">XMLDTDID</a></tt> </tt>
-<a name="L2612"></a><tt class="py-lineno">2612</tt>  <tt class="py-line">        <tt id="link-2833" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2828', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2829" class="py-name"><a title="lxml.etree.XMLDTDID" class="py-name" href="#" onclick="return doclink('link-2829', 'XMLDTDID', 'link-2796');">XMLDTDID</a></tt> </tt>
+<a name="L2625"></a><tt class="py-lineno">2625</tt>  <tt class="py-line">        <tt id="link-2830" 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-2833', 'XML', 'link-234');">XML</a></tt>      <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2834" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2830', 'XML', 'link-234');">XML</a></tt>      <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2831" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -8482,29 +8478,29 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2834', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2835" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2831', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2832" 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-2835', 'XML', 'link-234');">XML</a></tt> </tt>
-<a name="L2613"></a><tt class="py-lineno">2613</tt>  <tt class="py-line">        <tt class="py-name">xml_text</tt> <tt class="py-op">=</tt> <tt id="link-2836" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2836', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''</tt> </tt>
-<a name="L2614"></a><tt class="py-lineno">2614</tt>  <tt class="py-line"><tt class="py-string">        &lt;!DOCTYPE document [</tt> </tt>
-<a name="L2615"></a><tt class="py-lineno">2615</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ELEMENT document (h1,p)*&gt;</tt> </tt>
-<a name="L2616"></a><tt class="py-lineno">2616</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ELEMENT h1 (#PCDATA)&gt;</tt> </tt>
-<a name="L2617"></a><tt class="py-lineno">2617</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ATTLIST h1 myid ID #REQUIRED&gt;</tt> </tt>
-<a name="L2618"></a><tt class="py-lineno">2618</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ELEMENT p  (#PCDATA)&gt;</tt> </tt>
-<a name="L2619"></a><tt class="py-lineno">2619</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ATTLIST p  someid ID #REQUIRED&gt;</tt> </tt>
-<a name="L2620"></a><tt class="py-lineno">2620</tt>  <tt class="py-line"><tt class="py-string">        ]&gt;</tt> </tt>
-<a name="L2621"></a><tt class="py-lineno">2621</tt>  <tt class="py-line"><tt class="py-string">        &lt;document&gt;</tt> </tt>
-<a name="L2622"></a><tt class="py-lineno">2622</tt>  <tt class="py-line"><tt class="py-string">          &lt;h1 myid="chapter1"&gt;...&lt;/h1&gt;</tt> </tt>
-<a name="L2623"></a><tt class="py-lineno">2623</tt>  <tt class="py-line"><tt class="py-string">          &lt;p id="note1" class="note"&gt;...&lt;/p&gt;</tt> </tt>
-<a name="L2624"></a><tt class="py-lineno">2624</tt>  <tt class="py-line"><tt class="py-string">          &lt;p&gt;Regular paragraph.&lt;/p&gt;</tt> </tt>
-<a name="L2625"></a><tt class="py-lineno">2625</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="L2626"></a><tt class="py-lineno">2626</tt>  <tt class="py-line"><tt class="py-string">          &lt;p someid="warn1" class="warning"&gt;...&lt;/p&gt;</tt> </tt>
-<a name="L2627"></a><tt class="py-lineno">2627</tt>  <tt class="py-line"><tt class="py-string">        &lt;/document&gt;</tt> </tt>
-<a name="L2628"></a><tt class="py-lineno">2628</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt> </tt>
-<a name="L2629"></a><tt class="py-lineno">2629</tt>  <tt class="py-line"> </tt>
-<a name="L2630"></a><tt class="py-lineno">2630</tt>  <tt class="py-line">        <tt id="link-2837" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-2837', 'parser', 'link-861');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-2838" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2832', 'XML', 'link-234');">XML</a></tt> </tt>
+<a name="L2626"></a><tt class="py-lineno">2626</tt>  <tt class="py-line">        <tt class="py-name">xml_text</tt> <tt class="py-op">=</tt> <tt id="link-2833" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2833', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''</tt> </tt>
+<a name="L2627"></a><tt class="py-lineno">2627</tt>  <tt class="py-line"><tt class="py-string">        &lt;!DOCTYPE document [</tt> </tt>
+<a name="L2628"></a><tt class="py-lineno">2628</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ELEMENT document (h1,p)*&gt;</tt> </tt>
+<a name="L2629"></a><tt class="py-lineno">2629</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ELEMENT h1 (#PCDATA)&gt;</tt> </tt>
+<a name="L2630"></a><tt class="py-lineno">2630</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ATTLIST h1 myid ID #REQUIRED&gt;</tt> </tt>
+<a name="L2631"></a><tt class="py-lineno">2631</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ELEMENT p  (#PCDATA)&gt;</tt> </tt>
+<a name="L2632"></a><tt class="py-lineno">2632</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ATTLIST p  someid ID #REQUIRED&gt;</tt> </tt>
+<a name="L2633"></a><tt class="py-lineno">2633</tt>  <tt class="py-line"><tt class="py-string">        ]&gt;</tt> </tt>
+<a name="L2634"></a><tt class="py-lineno">2634</tt>  <tt class="py-line"><tt class="py-string">        &lt;document&gt;</tt> </tt>
+<a name="L2635"></a><tt class="py-lineno">2635</tt>  <tt class="py-line"><tt class="py-string">          &lt;h1 myid="chapter1"&gt;...&lt;/h1&gt;</tt> </tt>
+<a name="L2636"></a><tt class="py-lineno">2636</tt>  <tt class="py-line"><tt class="py-string">          &lt;p id="note1" class="note"&gt;...&lt;/p&gt;</tt> </tt>
+<a name="L2637"></a><tt class="py-lineno">2637</tt>  <tt class="py-line"><tt class="py-string">          &lt;p&gt;Regular paragraph.&lt;/p&gt;</tt> </tt>
+<a name="L2638"></a><tt class="py-lineno">2638</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="L2639"></a><tt class="py-lineno">2639</tt>  <tt class="py-line"><tt class="py-string">          &lt;p someid="warn1" class="warning"&gt;...&lt;/p&gt;</tt> </tt>
+<a name="L2640"></a><tt class="py-lineno">2640</tt>  <tt class="py-line"><tt class="py-string">        &lt;/document&gt;</tt> </tt>
+<a name="L2641"></a><tt class="py-lineno">2641</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt> </tt>
+<a name="L2642"></a><tt class="py-lineno">2642</tt>  <tt class="py-line"> </tt>
+<a name="L2643"></a><tt class="py-lineno">2643</tt>  <tt class="py-line">        <tt id="link-2834" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-2834', 'parser', 'link-858');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-2835" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -8512,66 +8508,66 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2838', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2839" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2835', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2836" 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-2839', 'XMLParser', 'link-856');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">collect_ids</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L2631"></a><tt class="py-lineno">2631</tt>  <tt class="py-line">        <tt id="link-2840" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2840', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">dic</tt> <tt class="py-op">=</tt> <tt id="link-2841" class="py-name"><a title="lxml.etree.XMLDTDID" class="py-name" href="#" onclick="return doclink('link-2841', 'XMLDTDID', 'link-2799');">XMLDTDID</a></tt><tt class="py-op">(</tt><tt class="py-name">xml_text</tt><tt class="py-op">,</tt> <tt id="link-2842" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-2842', 'parser', 'link-861');">parser</a></tt><tt class="py-op">=</tt><tt id="link-2843" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-2843', 'parser', 'link-861');">parser</a></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">root2</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-2844', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt class="py-name">xml_text</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">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-2845" 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-2845', '_writeElement', 'link-370');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-2846" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2846', 'root', 'link-247');">root</a></tt><tt class="py-op">)</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">self</tt><tt class="py-op">.</tt><tt id="link-2847" 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-2847', '_writeElement', 'link-370');">_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="L2635"></a><tt class="py-lineno">2635</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertFalse</tt><tt class="py-op">(</tt><tt class="py-name">dic</tt><tt class="py-op">)</tt> </tt>
-<a name="L2636"></a><tt class="py-lineno">2636</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2848" class="py-name"><a title="lxml.tests.test_etree.ETreeOnlyTestCase._checkIDDict" class="py-name" href="#" onclick="return doclink('link-2848', '_checkIDDict', 'link-2798');">_checkIDDict</a></tt><tt class="py-op">(</tt><tt class="py-name">dic</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="L2637"></a><tt class="py-lineno">2637</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase._checkIDDict"></a><div id="ETreeOnlyTestCase._checkIDDict-def"><a name="L2638"></a><tt class="py-lineno">2638</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="L2639"></a><tt class="py-lineno">2639</tt>  <tt class="py-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="L2640"></a><tt class="py-lineno">2640</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="L2641"></a><tt class="py-lineno">2641</tt>  <tt class="py-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-2849" class="py-name"><a title="lxml.etree._Attrib.items
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-2836', 'XMLParser', 'link-853');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">collect_ids</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L2644"></a><tt class="py-lineno">2644</tt>  <tt class="py-line">        <tt id="link-2837" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2837', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">dic</tt> <tt class="py-op">=</tt> <tt id="link-2838" class="py-name"><a title="lxml.etree.XMLDTDID" class="py-name" href="#" onclick="return doclink('link-2838', 'XMLDTDID', 'link-2796');">XMLDTDID</a></tt><tt class="py-op">(</tt><tt class="py-name">xml_text</tt><tt class="py-op">,</tt> <tt id="link-2839" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-2839', 'parser', 'link-858');">parser</a></tt><tt class="py-op">=</tt><tt id="link-2840" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-2840', 'parser', 'link-858');">parser</a></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">root2</tt> <tt class="py-op">=</tt> <tt id="link-2841" 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-2841', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt class="py-name">xml_text</tt><tt class="py-op">)</tt> </tt>
+<a name="L2646"></a><tt class="py-lineno">2646</tt>  <tt class="py-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-2842" 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-2842', '_writeElement', 'link-367');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-2843" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2843', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2647"></a><tt class="py-lineno">2647</tt>  <tt class="py-line">                         <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2844" 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-2844', '_writeElement', 'link-367');">_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="L2648"></a><tt class="py-lineno">2648</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertFalse</tt><tt class="py-op">(</tt><tt class="py-name">dic</tt><tt class="py-op">)</tt> </tt>
+<a name="L2649"></a><tt class="py-lineno">2649</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2845" class="py-name"><a title="lxml.tests.test_etree.ETreeOnlyTestCase._checkIDDict" class="py-name" href="#" onclick="return doclink('link-2845', '_checkIDDict', 'link-2795');">_checkIDDict</a></tt><tt class="py-op">(</tt><tt class="py-name">dic</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="L2650"></a><tt class="py-lineno">2650</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase._checkIDDict"></a><div id="ETreeOnlyTestCase._checkIDDict-def"><a name="L2651"></a><tt class="py-lineno">2651</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="L2652"></a><tt class="py-lineno">2652</tt>  <tt class="py-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="L2653"></a><tt class="py-lineno">2653</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="L2654"></a><tt class="py-lineno">2654</tt>  <tt class="py-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-2846" 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-2849', 'items', 'link-304');">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="L2642"></a><tt class="py-lineno">2642</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-2850" class="py-name"><a title="lxml.etree._Attrib.items
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-2846', 'items', 'link-304');">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="L2655"></a><tt class="py-lineno">2655</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-2847" 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-2850', 'items', 'link-304');">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="L2643"></a><tt class="py-lineno">2643</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="L2644"></a><tt class="py-lineno">2644</tt>  <tt class="py-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-2851" class="py-name"><a title="lxml.etree._Attrib.iteritems
-lxml.etree._IDDict.iteritems" class="py-name" href="#" onclick="return doclink('link-2851', 'iteritems', 'link-2443');">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="L2645"></a><tt class="py-lineno">2645</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-2852" class="py-name"><a title="lxml.etree._Attrib.iteritems
-lxml.etree._IDDict.iteritems" class="py-name" href="#" onclick="return doclink('link-2852', 'iteritems', 'link-2443');">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="L2646"></a><tt class="py-lineno">2646</tt>  <tt class="py-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-2853" class="py-name"><a title="lxml.etree._Attrib.keys
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-2847', 'items', 'link-304');">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="L2656"></a><tt class="py-lineno">2656</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="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 class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">dic</tt><tt class="py-op">.</tt><tt id="link-2848" class="py-name"><a title="lxml.etree._Attrib.iteritems
+lxml.etree._IDDict.iteritems" class="py-name" href="#" onclick="return doclink('link-2848', 'iteritems', 'link-2440');">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="L2658"></a><tt class="py-lineno">2658</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-2849" class="py-name"><a title="lxml.etree._Attrib.iteritems
+lxml.etree._IDDict.iteritems" class="py-name" href="#" onclick="return doclink('link-2849', 'iteritems', 'link-2440');">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="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 class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">dic</tt><tt class="py-op">.</tt><tt id="link-2850" 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-2853', 'keys', 'link-302');">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="L2647"></a><tt class="py-lineno">2647</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-2854" class="py-name"><a title="lxml.etree._Attrib.keys
+lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-2850', 'keys', 'link-302');">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="L2660"></a><tt class="py-lineno">2660</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-2851" 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-2854', 'keys', 'link-302');">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="L2648"></a><tt class="py-lineno">2648</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="L2649"></a><tt class="py-lineno">2649</tt>  <tt class="py-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-2855" class="py-name"><a title="lxml.etree._Attrib.iterkeys
-lxml.etree._IDDict.iterkeys" class="py-name" href="#" onclick="return doclink('link-2855', 'iterkeys', 'link-2441');">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="L2650"></a><tt class="py-lineno">2650</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-2856" class="py-name"><a title="lxml.etree._Attrib.iterkeys
-lxml.etree._IDDict.iterkeys" class="py-name" href="#" onclick="return doclink('link-2856', 'iterkeys', 'link-2441');">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="L2651"></a><tt class="py-lineno">2651</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="L2652"></a><tt class="py-lineno">2652</tt>  <tt class="py-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-2857" class="py-name"><a title="lxml.etree._Attrib.values
+lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-2851', 'keys', 'link-302');">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="L2661"></a><tt class="py-lineno">2661</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="L2662"></a><tt class="py-lineno">2662</tt>  <tt class="py-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-2852" class="py-name"><a title="lxml.etree._Attrib.iterkeys
+lxml.etree._IDDict.iterkeys" class="py-name" href="#" onclick="return doclink('link-2852', 'iterkeys', 'link-2438');">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="L2663"></a><tt class="py-lineno">2663</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-2853" class="py-name"><a title="lxml.etree._Attrib.iterkeys
+lxml.etree._IDDict.iterkeys" class="py-name" href="#" onclick="return doclink('link-2853', 'iterkeys', 'link-2438');">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="L2664"></a><tt class="py-lineno">2664</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="L2665"></a><tt class="py-lineno">2665</tt>  <tt class="py-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-2854" 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-2857', 'values', 'link-303');">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="L2653"></a><tt class="py-lineno">2653</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-2858" class="py-name"><a title="lxml.etree._Attrib.values
+lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-2854', 'values', 'link-303');">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="L2666"></a><tt class="py-lineno">2666</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-2855" 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-2858', 'values', 'link-303');">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="L2654"></a><tt class="py-lineno">2654</tt>  <tt class="py-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-2859" class="py-name"><a title="lxml.etree._Attrib.itervalues
-lxml.etree._IDDict.itervalues" class="py-name" href="#" onclick="return doclink('link-2859', 'itervalues', 'link-2445');">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="L2655"></a><tt class="py-lineno">2655</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-2860" class="py-name"><a title="lxml.etree._Attrib.itervalues
-lxml.etree._IDDict.itervalues" class="py-name" href="#" onclick="return doclink('link-2860', 'itervalues', 'link-2445');">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="L2656"></a><tt class="py-lineno">2656</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_register_namespace_xml"></a><div id="ETreeOnlyTestCase.test_register_namespace_xml-def"><a name="L2657"></a><tt class="py-lineno">2657</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_register_namespace_xml-toggle" onclick="return toggle('ETreeOnlyTestCase.test_register_namespace_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_register_namespace_xml">test_register_namespace_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_register_namespace_xml-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_register_namespace_xml-expanded"><a name="L2658"></a><tt class="py-lineno">2658</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">self</tt><tt class="py-op">.</tt><tt id="link-2861" class="py-name"><a title="lxml.etree
+lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-2855', 'values', 'link-303');">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="L2667"></a><tt class="py-lineno">2667</tt>  <tt class="py-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-2856" class="py-name"><a title="lxml.etree._Attrib.itervalues
+lxml.etree._IDDict.itervalues" class="py-name" href="#" onclick="return doclink('link-2856', 'itervalues', 'link-2442');">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="L2668"></a><tt class="py-lineno">2668</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-2857" class="py-name"><a title="lxml.etree._Attrib.itervalues
+lxml.etree._IDDict.itervalues" class="py-name" href="#" onclick="return doclink('link-2857', 'itervalues', 'link-2442');">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="L2669"></a><tt class="py-lineno">2669</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_register_namespace_xml"></a><div id="ETreeOnlyTestCase.test_register_namespace_xml-def"><a name="L2670"></a><tt class="py-lineno">2670</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_register_namespace_xml-toggle" onclick="return toggle('ETreeOnlyTestCase.test_register_namespace_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_register_namespace_xml">test_register_namespace_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_register_namespace_xml-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_register_namespace_xml-expanded"><a name="L2671"></a><tt class="py-lineno">2671</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">self</tt><tt class="py-op">.</tt><tt id="link-2858" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -8579,10 +8575,10 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2861', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2862" class="py-name" targets="Method lxml.etree.XPathElementEvaluator.register_namespace()=lxml.etree.XPathElementEvaluator-class.html#register_namespace,Function lxml.etree.register_namespace()=lxml.etree-module.html#register_namespace"><a title="lxml.etree.XPathElementEvaluator.register_namespace
-lxml.etree.register_namespace" class="py-name" href="#" onclick="return doclink('link-2862', 'register_namespace', 'link-2862');">register_namespace</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L2659"></a><tt class="py-lineno">2659</tt>  <tt class="py-line">                          <tt class="py-string">"XML"</tt><tt class="py-op">,</tt> <tt class="py-string">"http://www.w3.org/XML/1998/namespace"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2660"></a><tt class="py-lineno">2660</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">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-2858', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2859" class="py-name" targets="Method lxml.etree.XPathElementEvaluator.register_namespace()=lxml.etree.XPathElementEvaluator-class.html#register_namespace,Function lxml.etree.register_namespace()=lxml.etree-module.html#register_namespace"><a title="lxml.etree.XPathElementEvaluator.register_namespace
+lxml.etree.register_namespace" class="py-name" href="#" onclick="return doclink('link-2859', 'register_namespace', 'link-2859');">register_namespace</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L2672"></a><tt class="py-lineno">2672</tt>  <tt class="py-line">                          <tt class="py-string">"XML"</tt><tt class="py-op">,</tt> <tt class="py-string">"http://www.w3.org/XML/1998/namespace"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2673"></a><tt class="py-lineno">2673</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">self</tt><tt class="py-op">.</tt><tt id="link-2860" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -8590,10 +8586,10 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2863', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2864" class="py-name"><a title="lxml.etree.XPathElementEvaluator.register_namespace
-lxml.etree.register_namespace" class="py-name" href="#" onclick="return doclink('link-2864', 'register_namespace', 'link-2862');">register_namespace</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L2661"></a><tt class="py-lineno">2661</tt>  <tt class="py-line">                          <tt class="py-string">"xml"</tt><tt class="py-op">,</tt> <tt class="py-string">"http://www.w3.org/XML/2345"</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">self</tt><tt class="py-op">.</tt><tt id="link-2865" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2860', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2861" class="py-name"><a title="lxml.etree.XPathElementEvaluator.register_namespace
+lxml.etree.register_namespace" class="py-name" href="#" onclick="return doclink('link-2861', 'register_namespace', 'link-2859');">register_namespace</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L2674"></a><tt class="py-lineno">2674</tt>  <tt class="py-line">                          <tt class="py-string">"xml"</tt><tt class="py-op">,</tt> <tt class="py-string">"http://www.w3.org/XML/2345"</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 id="link-2862" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -8601,11 +8597,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2865', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2866" class="py-name"><a title="lxml.etree.XPathElementEvaluator.register_namespace
-lxml.etree.register_namespace" class="py-name" href="#" onclick="return doclink('link-2866', 'register_namespace', 'link-2862');">register_namespace</a></tt><tt class="py-op">(</tt><tt class="py-string">"xml"</tt><tt class="py-op">,</tt> <tt class="py-string">"http://www.w3.org/XML/1998/namespace"</tt><tt class="py-op">)</tt>  <tt class="py-comment"># ok</tt> </tt>
-</div><a name="L2663"></a><tt class="py-lineno">2663</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_namespaces"></a><div id="ETreeOnlyTestCase.test_namespaces-def"><a name="L2664"></a><tt class="py-lineno">2664</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="L2665"></a><tt class="py-lineno">2665</tt>  <tt class="py-line">        <tt id="link-2867" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2862', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2863" class="py-name"><a title="lxml.etree.XPathElementEvaluator.register_namespace
+lxml.etree.register_namespace" class="py-name" href="#" onclick="return doclink('link-2863', 'register_namespace', 'link-2859');">register_namespace</a></tt><tt class="py-op">(</tt><tt class="py-string">"xml"</tt><tt class="py-op">,</tt> <tt class="py-string">"http://www.w3.org/XML/1998/namespace"</tt><tt class="py-op">)</tt>  <tt class="py-comment"># ok</tt> </tt>
+</div><a name="L2676"></a><tt class="py-lineno">2676</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_namespaces"></a><div id="ETreeOnlyTestCase.test_namespaces-def"><a name="L2677"></a><tt class="py-lineno">2677</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="L2678"></a><tt class="py-lineno">2678</tt>  <tt class="py-line">        <tt id="link-2864" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -8613,7 +8609,7 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2867', 'etree', 'link-3');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2868" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2864', 'etree', 'link-3');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2865" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -8621,10 +8617,10 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2868', 'etree', 'link-3');">etree</a></tt> </tt>
-<a name="L2666"></a><tt class="py-lineno">2666</tt>  <tt class="py-line"> </tt>
-<a name="L2667"></a><tt class="py-lineno">2667</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="L2668"></a><tt class="py-lineno">2668</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2869" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2865', 'etree', 'link-3');">etree</a></tt> </tt>
+<a name="L2679"></a><tt class="py-lineno">2679</tt>  <tt class="py-line"> </tt>
+<a name="L2680"></a><tt class="py-lineno">2680</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="L2681"></a><tt class="py-lineno">2681</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2866" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -8632,20 +8628,20 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2869', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2870" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2866', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2867" 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-2870', 'Element', 'link-69');">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-2871" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2871', 'nsmap', 'link-202');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
-<a name="L2669"></a><tt class="py-lineno">2669</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2670"></a><tt class="py-lineno">2670</tt>  <tt class="py-line">            <tt class="py-string">'foo'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2671"></a><tt class="py-lineno">2671</tt>  <tt class="py-line">            <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2872" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2872', 'prefix', 'link-2467');">prefix</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2672"></a><tt class="py-lineno">2672</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2673"></a><tt class="py-lineno">2673</tt>  <tt class="py-line">            <tt id="link-2873" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2873', '_bytes', 'link-18');">_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="L2674"></a><tt class="py-lineno">2674</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2874" 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-2874', '_writeElement', 'link-370');">_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="L2675"></a><tt class="py-lineno">2675</tt>  <tt class="py-line">         </tt>
-<a name="ETreeOnlyTestCase.test_namespaces_default"></a><div id="ETreeOnlyTestCase.test_namespaces_default-def"><a name="L2676"></a><tt class="py-lineno">2676</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="L2677"></a><tt class="py-lineno">2677</tt>  <tt class="py-line">        <tt id="link-2875" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2867', 'Element', 'link-69');">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-2868" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2868', 'nsmap', 'link-202');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2683"></a><tt class="py-lineno">2683</tt>  <tt class="py-line">            <tt class="py-string">'foo'</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">e</tt><tt class="py-op">.</tt><tt id="link-2869" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2869', 'prefix', 'link-2464');">prefix</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2685"></a><tt class="py-lineno">2685</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2686"></a><tt class="py-lineno">2686</tt>  <tt class="py-line">            <tt id="link-2870" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2870', '_bytes', 'link-18');">_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="L2687"></a><tt class="py-lineno">2687</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2871" 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-2871', '_writeElement', 'link-367');">_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="L2688"></a><tt class="py-lineno">2688</tt>  <tt class="py-line">         </tt>
+<a name="ETreeOnlyTestCase.test_namespaces_default"></a><div id="ETreeOnlyTestCase.test_namespaces_default-def"><a name="L2689"></a><tt class="py-lineno">2689</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="L2690"></a><tt class="py-lineno">2690</tt>  <tt class="py-line">        <tt id="link-2872" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -8653,7 +8649,7 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2875', 'etree', 'link-3');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2876" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2872', 'etree', 'link-3');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2873" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -8661,10 +8657,10 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2876', 'etree', 'link-3');">etree</a></tt> </tt>
-<a name="L2678"></a><tt class="py-lineno">2678</tt>  <tt class="py-line"> </tt>
-<a name="L2679"></a><tt class="py-lineno">2679</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="L2680"></a><tt class="py-lineno">2680</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <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-2873', 'etree', 'link-3');">etree</a></tt> </tt>
+<a name="L2691"></a><tt class="py-lineno">2691</tt>  <tt class="py-line"> </tt>
+<a name="L2692"></a><tt class="py-lineno">2692</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="L2693"></a><tt class="py-lineno">2693</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2874" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -8672,28 +8668,28 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2877', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2878" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2874', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2875" 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-2878', 'Element', 'link-69');">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-2879" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2879', 'nsmap', 'link-202');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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">None</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">e</tt><tt class="py-op">.</tt><tt id="link-2880" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2880', 'prefix', 'link-2467');">prefix</a></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>
-<a name="L2685"></a><tt class="py-lineno">2685</tt>  <tt class="py-line">            <tt class="py-string">'{http://ns.infrae.com/foo}bar'</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">e</tt><tt class="py-op">.</tt><tt id="link-2881" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2875', 'Element', 'link-69');">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-2876" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2876', 'nsmap', 'link-202');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
+<a name="L2694"></a><tt class="py-lineno">2694</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2695"></a><tt class="py-lineno">2695</tt>  <tt class="py-line">            <tt class="py-name">None</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">e</tt><tt class="py-op">.</tt><tt id="link-2877" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2877', 'prefix', 'link-2464');">prefix</a></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>
+<a name="L2698"></a><tt class="py-lineno">2698</tt>  <tt class="py-line">            <tt class="py-string">'{http://ns.infrae.com/foo}bar'</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">e</tt><tt class="py-op">.</tt><tt id="link-2878" 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-2881', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2687"></a><tt class="py-lineno">2687</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2688"></a><tt class="py-lineno">2688</tt>  <tt class="py-line">            <tt id="link-2882" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2882', '_bytes', 'link-18');">_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="L2689"></a><tt class="py-lineno">2689</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2883" 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-2883', '_writeElement', 'link-370');">_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="L2690"></a><tt class="py-lineno">2690</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_namespaces_default_and_other"></a><div id="ETreeOnlyTestCase.test_namespaces_default_and_other-def"><a name="L2691"></a><tt class="py-lineno">2691</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_namespaces_default_and_other-toggle" onclick="return toggle('ETreeOnlyTestCase.test_namespaces_default_and_other');">-</a><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_other">test_namespaces_default_and_other</a><tt class="py-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_other-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_namespaces_default_and_other-expanded"><a name="L2692"></a><tt class="py-lineno">2692</tt>  <tt class="py-line">        <tt id="link-2884" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2878', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2700"></a><tt class="py-lineno">2700</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2701"></a><tt class="py-lineno">2701</tt>  <tt class="py-line">            <tt id="link-2879" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2879', '_bytes', 'link-18');">_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="L2702"></a><tt class="py-lineno">2702</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2880" 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-2880', '_writeElement', 'link-367');">_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="L2703"></a><tt class="py-lineno">2703</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_namespaces_default_and_other"></a><div id="ETreeOnlyTestCase.test_namespaces_default_and_other-def"><a name="L2704"></a><tt class="py-lineno">2704</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_namespaces_default_and_other-toggle" onclick="return toggle('ETreeOnlyTestCase.test_namespaces_default_and_other');">-</a><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_other">test_namespaces_default_and_other</a><tt class="py-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_other-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_namespaces_default_and_other-expanded"><a name="L2705"></a><tt class="py-lineno">2705</tt>  <tt class="py-line">        <tt id="link-2881" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -8701,7 +8697,7 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2884', 'etree', 'link-3');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2885" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2881', 'etree', 'link-3');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2882" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -8709,10 +8705,10 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2885', 'etree', 'link-3');">etree</a></tt> </tt>
-<a name="L2693"></a><tt class="py-lineno">2693</tt>  <tt class="py-line"> </tt>
-<a name="L2694"></a><tt class="py-lineno">2694</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 class="py-string">'p'</tt><tt class="py-op">:</tt> <tt class="py-string">'http://test/'</tt><tt class="py-op">}</tt> </tt>
-<a name="L2695"></a><tt class="py-lineno">2695</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2886" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2882', 'etree', 'link-3');">etree</a></tt> </tt>
+<a name="L2706"></a><tt class="py-lineno">2706</tt>  <tt class="py-line"> </tt>
+<a name="L2707"></a><tt class="py-lineno">2707</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 class="py-string">'p'</tt><tt class="py-op">:</tt> <tt class="py-string">'http://test/'</tt><tt class="py-op">}</tt> </tt>
+<a name="L2708"></a><tt class="py-lineno">2708</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2883" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -8720,24 +8716,24 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2886', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2887" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2883', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2884" 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-2887', 'Element', 'link-69');">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-2888" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2888', 'nsmap', 'link-202');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</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">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">e</tt><tt class="py-op">.</tt><tt id="link-2889" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2889', 'prefix', 'link-2467');">prefix</a></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-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2890" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2884', 'Element', 'link-69');">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-2885" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2885', 'nsmap', 'link-202');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</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">None</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2886" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2886', 'prefix', 'link-2464');">prefix</a></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-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2887" 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-2890', 'tag', 'link-73');">tag</a></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>
-<a name="L2699"></a><tt class="py-lineno">2699</tt>  <tt class="py-line">            <tt id="link-2891" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2891', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;bar xmlns="http://ns.infrae.com/foo" xmlns:p="http://test/"&gt;&lt;/bar&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2700"></a><tt class="py-lineno">2700</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2892" 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-2892', '_writeElement', 'link-370');">_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="L2701"></a><tt class="py-lineno">2701</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="L2702"></a><tt class="py-lineno">2702</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="L2703"></a><tt class="py-lineno">2703</tt>  <tt class="py-line">        <tt id="link-2893" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2887', 'tag', 'link-73');">tag</a></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>
+<a name="L2712"></a><tt class="py-lineno">2712</tt>  <tt class="py-line">            <tt id="link-2888" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2888', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;bar xmlns="http://ns.infrae.com/foo" xmlns:p="http://test/"&gt;&lt;/bar&gt;'</tt><tt class="py-op">)</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 id="link-2889" 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-2889', '_writeElement', 'link-367');">_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="L2714"></a><tt class="py-lineno">2714</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="L2715"></a><tt class="py-lineno">2715</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="L2716"></a><tt class="py-lineno">2716</tt>  <tt class="py-line">        <tt id="link-2890" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -8745,7 +8741,7 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2893', 'etree', 'link-3');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</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-2890', 'etree', 'link-3');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2891" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -8753,11 +8749,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2894', 'etree', 'link-3');">etree</a></tt> </tt>
-<a name="L2704"></a><tt class="py-lineno">2704</tt>  <tt class="py-line"> </tt>
-<a name="L2705"></a><tt class="py-lineno">2705</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="L2706"></a><tt class="py-lineno">2706</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="L2707"></a><tt class="py-lineno">2707</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2895" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2891', 'etree', 'link-3');">etree</a></tt> </tt>
+<a name="L2717"></a><tt class="py-lineno">2717</tt>  <tt class="py-line"> </tt>
+<a name="L2718"></a><tt class="py-lineno">2718</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="L2719"></a><tt class="py-lineno">2719</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="L2720"></a><tt class="py-lineno">2720</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2892" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -8765,21 +8761,21 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2895', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2896" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2892', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2893" 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-2896', 'Element', 'link-69');">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-2897" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2897', 'nsmap', 'link-202');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
-<a name="L2708"></a><tt class="py-lineno">2708</tt>  <tt class="py-line">        <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2898" class="py-name"><a title="lxml.etree._Element.set
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2893', 'Element', 'link-69');">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-2894" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2894', 'nsmap', 'link-202');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</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">e</tt><tt class="py-op">.</tt><tt id="link-2895" class="py-name"><a title="lxml.etree._Element.set
 lxml.etree._XSLTProcessingInstruction.set
 lxml.html.HtmlElement.set
-lxml.html.HtmlMixin.set" class="py-name" href="#" onclick="return doclink('link-2898', 'set', 'link-268');">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="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>
-<a name="L2710"></a><tt class="py-lineno">2710</tt>  <tt class="py-line">            <tt id="link-2899" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2899', '_bytes', 'link-18');">_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="L2711"></a><tt class="py-lineno">2711</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2900" 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-2900', '_writeElement', 'link-370');">_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="L2712"></a><tt class="py-lineno">2712</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="L2713"></a><tt class="py-lineno">2713</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="L2714"></a><tt class="py-lineno">2714</tt>  <tt class="py-line">        <tt id="link-2901" class="py-name"><a title="lxml.etree
+lxml.html.HtmlMixin.set" class="py-name" href="#" onclick="return doclink('link-2895', 'set', 'link-268');">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="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">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2723"></a><tt class="py-lineno">2723</tt>  <tt class="py-line">            <tt id="link-2896" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2896', '_bytes', 'link-18');">_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="L2724"></a><tt class="py-lineno">2724</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2897" 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-2897', '_writeElement', 'link-367');">_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="L2725"></a><tt class="py-lineno">2725</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="L2726"></a><tt class="py-lineno">2726</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="L2727"></a><tt class="py-lineno">2727</tt>  <tt class="py-line">        <tt id="link-2898" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -8787,7 +8783,7 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2901', 'etree', 'link-3');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2902" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2898', 'etree', 'link-3');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2899" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -8795,9 +8791,9 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2902', 'etree', 'link-3');">etree</a></tt> </tt>
-<a name="L2715"></a><tt class="py-lineno">2715</tt>  <tt class="py-line"> </tt>
-<a name="L2716"></a><tt class="py-lineno">2716</tt>  <tt class="py-line">        <tt id="link-2903" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2903', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2904" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2899', 'etree', 'link-3');">etree</a></tt> </tt>
+<a name="L2728"></a><tt class="py-lineno">2728</tt>  <tt class="py-line"> </tt>
+<a name="L2729"></a><tt class="py-lineno">2729</tt>  <tt class="py-line">        <tt id="link-2900" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2900', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2901" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -8805,12 +8801,12 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2904', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2905" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2901', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2902" 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-69');">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="L2717"></a><tt class="py-lineno">2717</tt>  <tt class="py-line">                             <tt id="link-2906" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2906', 'nsmap', 'link-202');">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="L2718"></a><tt class="py-lineno">2718</tt>  <tt class="py-line">        <tt class="py-name">sub</tt> <tt class="py-op">=</tt> <tt id="link-2907" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2902', 'Element', 'link-69');">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="L2730"></a><tt class="py-lineno">2730</tt>  <tt class="py-line">                             <tt id="link-2903" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2903', 'nsmap', 'link-202');">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="L2731"></a><tt class="py-lineno">2731</tt>  <tt class="py-line">        <tt class="py-name">sub</tt> <tt class="py-op">=</tt> <tt id="link-2904" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -8818,23 +8814,23 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2907', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2908" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2904', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2905" 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-2908', 'Element', 'link-69');">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="L2719"></a><tt class="py-lineno">2719</tt>  <tt class="py-line">                            <tt id="link-2909" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2909', 'nsmap', 'link-202');">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="L2720"></a><tt class="py-lineno">2720</tt>  <tt class="py-line"> </tt>
-<a name="L2721"></a><tt class="py-lineno">2721</tt>  <tt class="py-line">        <tt class="py-name">sub</tt><tt class="py-op">.</tt><tt id="link-2910" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2905', 'Element', 'link-69');">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="L2732"></a><tt class="py-lineno">2732</tt>  <tt class="py-line">                            <tt id="link-2906" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2906', 'nsmap', 'link-202');">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="L2733"></a><tt class="py-lineno">2733</tt>  <tt class="py-line"> </tt>
+<a name="L2734"></a><tt class="py-lineno">2734</tt>  <tt class="py-line">        <tt class="py-name">sub</tt><tt class="py-op">.</tt><tt id="link-2907" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2910', 'attrib', 'link-251');">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="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">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">.</tt><tt id="link-2911" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2907', 'attrib', 'link-251');">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="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">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">.</tt><tt id="link-2908" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2911', 'attrib', 'link-251');">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="L2723"></a><tt class="py-lineno">2723</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2724"></a><tt class="py-lineno">2724</tt>  <tt class="py-line">            <tt id="link-2912" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2912', '_bytes', 'link-18');">_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="L2725"></a><tt class="py-lineno">2725</tt>  <tt class="py-line">            <tt id="link-2913" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2908', 'attrib', 'link-251');">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="L2736"></a><tt class="py-lineno">2736</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2737"></a><tt class="py-lineno">2737</tt>  <tt class="py-line">            <tt id="link-2909" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2909', '_bytes', 'link-18');">_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="L2738"></a><tt class="py-lineno">2738</tt>  <tt class="py-line">            <tt id="link-2910" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -8842,15 +8838,15 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2913', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2914" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2914', 'tostring', 'link-237');">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="L2726"></a><tt class="py-lineno">2726</tt>  <tt class="py-line"> </tt>
-<a name="L2727"></a><tt class="py-lineno">2727</tt>  <tt class="py-line">        <tt id="link-2915" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2915', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-2916" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2916', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">)</tt> </tt>
-<a name="L2728"></a><tt class="py-lineno">2728</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2729"></a><tt class="py-lineno">2729</tt>  <tt class="py-line">            <tt id="link-2917" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2917', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root xmlns="http://test/ns"&gt;'</tt> </tt>
-<a name="L2730"></a><tt class="py-lineno">2730</tt>  <tt class="py-line">                   <tt class="py-string">'&lt;sub xmlns:test="http://test/ns" test:attr="value"/&gt;'</tt> </tt>
-<a name="L2731"></a><tt class="py-lineno">2731</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="L2732"></a><tt class="py-lineno">2732</tt>  <tt class="py-line">            <tt id="link-2918" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2910', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2911" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2911', 'tostring', 'link-237');">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="L2739"></a><tt class="py-lineno">2739</tt>  <tt class="py-line"> </tt>
+<a name="L2740"></a><tt class="py-lineno">2740</tt>  <tt class="py-line">        <tt id="link-2912" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2912', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-2913" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2913', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">sub</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>
+<a name="L2742"></a><tt class="py-lineno">2742</tt>  <tt class="py-line">            <tt id="link-2914" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2914', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root xmlns="http://test/ns"&gt;'</tt> </tt>
+<a name="L2743"></a><tt class="py-lineno">2743</tt>  <tt class="py-line">                   <tt class="py-string">'&lt;sub xmlns:test="http://test/ns" test:attr="value"/&gt;'</tt> </tt>
+<a name="L2744"></a><tt class="py-lineno">2744</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="L2745"></a><tt class="py-lineno">2745</tt>  <tt class="py-line">            <tt id="link-2915" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -8858,11 +8854,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2918', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2919" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2919', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-2920" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2920', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2733"></a><tt class="py-lineno">2733</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="L2734"></a><tt class="py-lineno">2734</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="L2735"></a><tt class="py-lineno">2735</tt>  <tt class="py-line">        <tt id="link-2921" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2915', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2916" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2916', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-2917" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2917', 'root', 'link-247');">root</a></tt><tt class="py-op">)</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_attribute_keeps_namespace_prefix_on_merge_with_nons"></a><div id="ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge_with_nons-def"><a name="L2747"></a><tt class="py-lineno">2747</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="L2748"></a><tt class="py-lineno">2748</tt>  <tt class="py-line">        <tt id="link-2918" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -8870,7 +8866,7 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2921', 'etree', 'link-3');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2922" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2918', 'etree', 'link-3');">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.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -8878,9 +8874,9 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2922', 'etree', 'link-3');">etree</a></tt> </tt>
-<a name="L2736"></a><tt class="py-lineno">2736</tt>  <tt class="py-line"> </tt>
-<a name="L2737"></a><tt class="py-lineno">2737</tt>  <tt class="py-line">        <tt id="link-2923" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2923', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2924" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2919', 'etree', 'link-3');">etree</a></tt> </tt>
+<a name="L2749"></a><tt class="py-lineno">2749</tt>  <tt class="py-line"> </tt>
+<a name="L2750"></a><tt class="py-lineno">2750</tt>  <tt class="py-line">        <tt id="link-2920" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2920', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2921" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -8888,11 +8884,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2924', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2925" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2921', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2922" 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-2925', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</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">sub</tt> <tt class="py-op">=</tt> <tt id="link-2926" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2922', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</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">sub</tt> <tt class="py-op">=</tt> <tt id="link-2923" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -8900,23 +8896,23 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2926', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2927" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2923', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2924" 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-69');">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="L2739"></a><tt class="py-lineno">2739</tt>  <tt class="py-line">                            <tt id="link-2928" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2928', 'nsmap', 'link-202');">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="L2740"></a><tt class="py-lineno">2740</tt>  <tt class="py-line"> </tt>
-<a name="L2741"></a><tt class="py-lineno">2741</tt>  <tt class="py-line">        <tt class="py-name">sub</tt><tt class="py-op">.</tt><tt id="link-2929" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2924', 'Element', 'link-69');">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="L2752"></a><tt class="py-lineno">2752</tt>  <tt class="py-line">                            <tt id="link-2925" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2925', 'nsmap', 'link-202');">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="L2753"></a><tt class="py-lineno">2753</tt>  <tt class="py-line"> </tt>
+<a name="L2754"></a><tt class="py-lineno">2754</tt>  <tt class="py-line">        <tt class="py-name">sub</tt><tt class="py-op">.</tt><tt id="link-2926" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2929', 'attrib', 'link-251');">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="L2742"></a><tt class="py-lineno">2742</tt>  <tt class="py-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-2930" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2926', 'attrib', 'link-251');">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="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">sub</tt><tt class="py-op">.</tt><tt id="link-2927" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2930', 'attrib', 'link-251');">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="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 id="link-2931" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2931', '_bytes', 'link-18');">_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="L2745"></a><tt class="py-lineno">2745</tt>  <tt class="py-line">            <tt id="link-2932" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2927', 'attrib', 'link-251');">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="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>
+<a name="L2757"></a><tt class="py-lineno">2757</tt>  <tt class="py-line">            <tt id="link-2928" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2928', '_bytes', 'link-18');">_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="L2758"></a><tt class="py-lineno">2758</tt>  <tt class="py-line">            <tt id="link-2929" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -8924,15 +8920,15 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2932', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2933" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2933', 'tostring', 'link-237');">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="L2746"></a><tt class="py-lineno">2746</tt>  <tt class="py-line"> </tt>
-<a name="L2747"></a><tt class="py-lineno">2747</tt>  <tt class="py-line">        <tt id="link-2934" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2934', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-2935" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2935', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">)</tt> </tt>
-<a name="L2748"></a><tt class="py-lineno">2748</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2749"></a><tt class="py-lineno">2749</tt>  <tt class="py-line">            <tt id="link-2936" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2936', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;'</tt> </tt>
-<a name="L2750"></a><tt class="py-lineno">2750</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="L2751"></a><tt class="py-lineno">2751</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="L2752"></a><tt class="py-lineno">2752</tt>  <tt class="py-line">            <tt id="link-2937" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2929', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2930" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2930', 'tostring', 'link-237');">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="L2759"></a><tt class="py-lineno">2759</tt>  <tt class="py-line"> </tt>
+<a name="L2760"></a><tt class="py-lineno">2760</tt>  <tt class="py-line">        <tt id="link-2931" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2931', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-2932" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2932', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">)</tt> </tt>
+<a name="L2761"></a><tt class="py-lineno">2761</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2762"></a><tt class="py-lineno">2762</tt>  <tt class="py-line">            <tt id="link-2933" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2933', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;'</tt> </tt>
+<a name="L2763"></a><tt class="py-lineno">2763</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="L2764"></a><tt class="py-lineno">2764</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="L2765"></a><tt class="py-lineno">2765</tt>  <tt class="py-line">            <tt id="link-2934" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -8940,11 +8936,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2937', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2938" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2938', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-2939" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2939', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2753"></a><tt class="py-lineno">2753</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="L2754"></a><tt class="py-lineno">2754</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="L2755"></a><tt class="py-lineno">2755</tt>  <tt class="py-line">        <tt id="link-2940" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2934', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2935" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2935', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-2936" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2936', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2766"></a><tt class="py-lineno">2766</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="L2767"></a><tt class="py-lineno">2767</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="L2768"></a><tt class="py-lineno">2768</tt>  <tt class="py-line">        <tt id="link-2937" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -8952,7 +8948,7 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2940', 'etree', 'link-3');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2941" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2937', 'etree', 'link-3');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2938" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -8960,9 +8956,9 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2941', 'etree', 'link-3');">etree</a></tt> </tt>
-<a name="L2756"></a><tt class="py-lineno">2756</tt>  <tt class="py-line"> </tt>
-<a name="L2757"></a><tt class="py-lineno">2757</tt>  <tt class="py-line">        <tt id="link-2942" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2942', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2943" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2938', 'etree', 'link-3');">etree</a></tt> </tt>
+<a name="L2769"></a><tt class="py-lineno">2769</tt>  <tt class="py-line"> </tt>
+<a name="L2770"></a><tt class="py-lineno">2770</tt>  <tt class="py-line">        <tt id="link-2939" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2939', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2940" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -8970,11 +8966,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2943', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2944" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2940', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2941" 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-2944', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2758"></a><tt class="py-lineno">2758</tt>  <tt class="py-line">        <tt class="py-name">sub</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-2941', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</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">sub</tt> <tt class="py-op">=</tt> <tt id="link-2942" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -8982,24 +8978,24 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2945', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2946" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2942', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2943" 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-2946', 'Element', 'link-69');">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="L2759"></a><tt class="py-lineno">2759</tt>  <tt class="py-line">                            <tt id="link-2947" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2947', 'nsmap', 'link-202');">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="L2760"></a><tt class="py-lineno">2760</tt>  <tt class="py-line"> </tt>
-<a name="L2761"></a><tt class="py-lineno">2761</tt>  <tt class="py-line">        <tt class="py-name">sub</tt><tt class="py-op">.</tt><tt id="link-2948" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2943', 'Element', 'link-69');">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="L2772"></a><tt class="py-lineno">2772</tt>  <tt class="py-line">                            <tt id="link-2944" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2944', 'nsmap', 'link-202');">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="L2773"></a><tt class="py-lineno">2773</tt>  <tt class="py-line"> </tt>
+<a name="L2774"></a><tt class="py-lineno">2774</tt>  <tt class="py-line">        <tt class="py-name">sub</tt><tt class="py-op">.</tt><tt id="link-2945" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2948', 'attrib', 'link-251');">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="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">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">.</tt><tt id="link-2949" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2945', 'attrib', 'link-251');">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="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 class="py-name">sub</tt><tt class="py-op">.</tt><tt id="link-2946" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2949', 'attrib', 'link-251');">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="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 id="link-2950" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2950', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;sub xmlns="http://test/ns" '</tt> </tt>
-<a name="L2765"></a><tt class="py-lineno">2765</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="L2766"></a><tt class="py-lineno">2766</tt>  <tt class="py-line">            <tt id="link-2951" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2946', 'attrib', 'link-251');">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="L2776"></a><tt class="py-lineno">2776</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2777"></a><tt class="py-lineno">2777</tt>  <tt class="py-line">            <tt id="link-2947" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2947', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;sub xmlns="http://test/ns" '</tt> </tt>
+<a name="L2778"></a><tt class="py-lineno">2778</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="L2779"></a><tt class="py-lineno">2779</tt>  <tt class="py-line">            <tt id="link-2948" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9007,16 +9003,16 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2951', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2952" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2952', 'tostring', 'link-237');">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="L2767"></a><tt class="py-lineno">2767</tt>  <tt class="py-line"> </tt>
-<a name="L2768"></a><tt class="py-lineno">2768</tt>  <tt class="py-line">        <tt id="link-2953" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2953', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-2954" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2954', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">sub</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 id="link-2955" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2955', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;'</tt> </tt>
-<a name="L2771"></a><tt class="py-lineno">2771</tt>  <tt class="py-line">                   <tt class="py-string">'&lt;sub xmlns="http://test/ns"'</tt> </tt>
-<a name="L2772"></a><tt class="py-lineno">2772</tt>  <tt class="py-line">                   <tt class="py-string">' xmlns:ns0="http://test/ns" ns0:attr="value"/&gt;'</tt> </tt>
-<a name="L2773"></a><tt class="py-lineno">2773</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="L2774"></a><tt class="py-lineno">2774</tt>  <tt class="py-line">            <tt id="link-2956" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2948', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2949" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2949', 'tostring', 'link-237');">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="L2780"></a><tt class="py-lineno">2780</tt>  <tt class="py-line"> </tt>
+<a name="L2781"></a><tt class="py-lineno">2781</tt>  <tt class="py-line">        <tt id="link-2950" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2950', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-2951" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2951', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">sub</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2783"></a><tt class="py-lineno">2783</tt>  <tt class="py-line">            <tt id="link-2952" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2952', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;'</tt> </tt>
+<a name="L2784"></a><tt class="py-lineno">2784</tt>  <tt class="py-line">                   <tt class="py-string">'&lt;sub xmlns="http://test/ns"'</tt> </tt>
+<a name="L2785"></a><tt class="py-lineno">2785</tt>  <tt class="py-line">                   <tt class="py-string">' xmlns:ns0="http://test/ns" ns0:attr="value"/&gt;'</tt> </tt>
+<a name="L2786"></a><tt class="py-lineno">2786</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="L2787"></a><tt class="py-lineno">2787</tt>  <tt class="py-line">            <tt id="link-2953" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9024,11 +9020,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2956', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2957" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2957', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-2958" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2958', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2775"></a><tt class="py-lineno">2775</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="L2776"></a><tt class="py-lineno">2776</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="L2777"></a><tt class="py-lineno">2777</tt>  <tt class="py-line">        <tt id="link-2959" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2953', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2954" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2954', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-2955" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2955', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2788"></a><tt class="py-lineno">2788</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="L2789"></a><tt class="py-lineno">2789</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="L2790"></a><tt class="py-lineno">2790</tt>  <tt class="py-line">        <tt id="link-2956" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9036,7 +9032,7 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2959', 'etree', 'link-3');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2960" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2956', 'etree', 'link-3');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2957" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9044,9 +9040,9 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2960', 'etree', 'link-3');">etree</a></tt> </tt>
-<a name="L2778"></a><tt class="py-lineno">2778</tt>  <tt class="py-line"> </tt>
-<a name="L2779"></a><tt class="py-lineno">2779</tt>  <tt class="py-line">        <tt id="link-2961" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2961', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2962" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2957', 'etree', 'link-3');">etree</a></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 id="link-2958" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2958', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2959" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9054,13 +9050,13 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2962', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2963" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2959', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2960" 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-2963', 'Element', 'link-69');">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="L2780"></a><tt class="py-lineno">2780</tt>  <tt class="py-line">                             <tt id="link-2964" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2964', 'nsmap', 'link-202');">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="L2781"></a><tt class="py-lineno">2781</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="L2782"></a><tt class="py-lineno">2782</tt>  <tt class="py-line">        <tt class="py-name">sub</tt> <tt class="py-op">=</tt> <tt id="link-2965" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2960', 'Element', 'link-69');">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="L2793"></a><tt class="py-lineno">2793</tt>  <tt class="py-line">                             <tt id="link-2961" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2961', 'nsmap', 'link-202');">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="L2794"></a><tt class="py-lineno">2794</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="L2795"></a><tt class="py-lineno">2795</tt>  <tt class="py-line">        <tt class="py-name">sub</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.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9068,24 +9064,24 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2965', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2966" 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-3');">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-2966', 'Element', 'link-69');">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="L2783"></a><tt class="py-lineno">2783</tt>  <tt class="py-line">                            <tt id="link-2967" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2967', 'nsmap', 'link-202');">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="L2784"></a><tt class="py-lineno">2784</tt>  <tt class="py-line"> </tt>
-<a name="L2785"></a><tt class="py-lineno">2785</tt>  <tt class="py-line">        <tt class="py-name">sub</tt><tt class="py-op">.</tt><tt id="link-2968" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2963', 'Element', 'link-69');">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="L2796"></a><tt class="py-lineno">2796</tt>  <tt class="py-line">                            <tt id="link-2964" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2964', 'nsmap', 'link-202');">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="L2797"></a><tt class="py-lineno">2797</tt>  <tt class="py-line"> </tt>
+<a name="L2798"></a><tt class="py-lineno">2798</tt>  <tt class="py-line">        <tt class="py-name">sub</tt><tt class="py-op">.</tt><tt id="link-2965" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2968', 'attrib', 'link-251');">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="L2786"></a><tt class="py-lineno">2786</tt>  <tt class="py-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-2969" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2965', 'attrib', 'link-251');">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="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 class="py-name">sub</tt><tt class="py-op">.</tt><tt id="link-2966" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2969', 'attrib', 'link-251');">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="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 id="link-2970" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2970', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;sub xmlns="http://test/ns" '</tt> </tt>
-<a name="L2789"></a><tt class="py-lineno">2789</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="L2790"></a><tt class="py-lineno">2790</tt>  <tt class="py-line">            <tt id="link-2971" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2966', 'attrib', 'link-251');">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="L2800"></a><tt class="py-lineno">2800</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2801"></a><tt class="py-lineno">2801</tt>  <tt class="py-line">            <tt id="link-2967" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2967', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;sub xmlns="http://test/ns" '</tt> </tt>
+<a name="L2802"></a><tt class="py-lineno">2802</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="L2803"></a><tt class="py-lineno">2803</tt>  <tt class="py-line">            <tt id="link-2968" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9093,15 +9089,15 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2971', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2972" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2972', 'tostring', 'link-237');">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="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 id="link-2973" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2973', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-2974" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2974', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">sub</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2794"></a><tt class="py-lineno">2794</tt>  <tt class="py-line">            <tt id="link-2975" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2975', '_bytes', 'link-18');">_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="L2795"></a><tt class="py-lineno">2795</tt>  <tt class="py-line">                   <tt class="py-string">'&lt;test:sub test:attr="value"/&gt;'</tt> </tt>
-<a name="L2796"></a><tt class="py-lineno">2796</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="L2797"></a><tt class="py-lineno">2797</tt>  <tt class="py-line">            <tt id="link-2976" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2968', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2969" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2969', 'tostring', 'link-237');">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="L2804"></a><tt class="py-lineno">2804</tt>  <tt class="py-line"> </tt>
+<a name="L2805"></a><tt class="py-lineno">2805</tt>  <tt class="py-line">        <tt id="link-2970" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2970', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-2971" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2971', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">sub</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2807"></a><tt class="py-lineno">2807</tt>  <tt class="py-line">            <tt id="link-2972" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2972', '_bytes', 'link-18');">_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="L2808"></a><tt class="py-lineno">2808</tt>  <tt class="py-line">                   <tt class="py-string">'&lt;test:sub test:attr="value"/&gt;'</tt> </tt>
+<a name="L2809"></a><tt class="py-lineno">2809</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="L2810"></a><tt class="py-lineno">2810</tt>  <tt class="py-line">            <tt id="link-2973" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9109,11 +9105,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2976', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2977" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2977', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-2978" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2978', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2798"></a><tt class="py-lineno">2798</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_namespaces_elementtree"></a><div id="ETreeOnlyTestCase.test_namespaces_elementtree-def"><a name="L2799"></a><tt class="py-lineno">2799</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="L2800"></a><tt class="py-lineno">2800</tt>  <tt class="py-line">        <tt id="link-2979" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2973', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2974" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2974', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</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-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2811"></a><tt class="py-lineno">2811</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_namespaces_elementtree"></a><div id="ETreeOnlyTestCase.test_namespaces_elementtree-def"><a name="L2812"></a><tt class="py-lineno">2812</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="L2813"></a><tt class="py-lineno">2813</tt>  <tt class="py-line">        <tt id="link-2976" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9121,7 +9117,7 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2979', 'etree', 'link-3');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2980" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2976', 'etree', 'link-3');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2977" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9129,10 +9125,10 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2980', 'etree', 'link-3');">etree</a></tt> </tt>
-<a name="L2801"></a><tt class="py-lineno">2801</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="L2802"></a><tt class="py-lineno">2802</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="L2803"></a><tt class="py-lineno">2803</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
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2977', 'etree', 'link-3');">etree</a></tt> </tt>
+<a name="L2814"></a><tt class="py-lineno">2814</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="L2815"></a><tt class="py-lineno">2815</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="L2816"></a><tt class="py-lineno">2816</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2978" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9140,11 +9136,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2981', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2982" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2978', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2979" 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-2982', 'Element', 'link-69');">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-2983" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2983', 'nsmap', 'link-202');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</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">tree</tt> <tt class="py-op">=</tt> <tt id="link-2984" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2979', 'Element', 'link-69');">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-2980" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2980', 'nsmap', 'link-202');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
+<a name="L2817"></a><tt class="py-lineno">2817</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2981" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9152,10 +9148,10 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2984', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2985" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2981', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2982" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2985', 'ElementTree', 'link-573');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-2986" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-2986', 'element', 'link-978');">element</a></tt><tt class="py-op">=</tt><tt class="py-name">e</tt><tt class="py-op">)</tt> </tt>
-<a name="L2805"></a><tt class="py-lineno">2805</tt>  <tt class="py-line">        <tt id="link-2987" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2982', 'ElementTree', 'link-570');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-2983" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-2983', 'element', 'link-975');">element</a></tt><tt class="py-op">=</tt><tt class="py-name">e</tt><tt class="py-op">)</tt> </tt>
+<a name="L2818"></a><tt class="py-lineno">2818</tt>  <tt class="py-line">        <tt id="link-2984" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9163,14 +9159,14 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2987', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2988" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2988', 'SubElement', 'link-112');">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="L2806"></a><tt class="py-lineno">2806</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2807"></a><tt class="py-lineno">2807</tt>  <tt class="py-line">            <tt id="link-2989" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2989', '_bytes', 'link-18');">_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="L2808"></a><tt class="py-lineno">2808</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2990" 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-2990', '_writeElement', 'link-370');">_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="L2809"></a><tt class="py-lineno">2809</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="L2810"></a><tt class="py-lineno">2810</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="L2811"></a><tt class="py-lineno">2811</tt>  <tt class="py-line">        <tt id="link-2991" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2984', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2985" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2985', 'SubElement', 'link-112');">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="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 id="link-2986" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2986', '_bytes', 'link-18');">_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="L2821"></a><tt class="py-lineno">2821</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2987" 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-2987', '_writeElement', 'link-367');">_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="L2822"></a><tt class="py-lineno">2822</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="L2823"></a><tt class="py-lineno">2823</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="L2824"></a><tt class="py-lineno">2824</tt>  <tt class="py-line">        <tt id="link-2988" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9178,7 +9174,7 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2991', 'etree', 'link-3');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2992" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2988', 'etree', 'link-3');">etree</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.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9186,10 +9182,10 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2992', 'etree', 'link-3');">etree</a></tt> </tt>
-<a name="L2812"></a><tt class="py-lineno">2812</tt>  <tt class="py-line"> </tt>
-<a name="L2813"></a><tt class="py-lineno">2813</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="L2814"></a><tt class="py-lineno">2814</tt>  <tt class="py-line">        <tt class="py-name">e1</tt> <tt class="py-op">=</tt> <tt id="link-2993" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2989', 'etree', 'link-3');">etree</a></tt> </tt>
+<a name="L2825"></a><tt class="py-lineno">2825</tt>  <tt class="py-line"> </tt>
+<a name="L2826"></a><tt class="py-lineno">2826</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="L2827"></a><tt class="py-lineno">2827</tt>  <tt class="py-line">        <tt class="py-name">e1</tt> <tt class="py-op">=</tt> <tt id="link-2990" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9197,11 +9193,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2993', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2994" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2990', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2991" 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-2994', 'Element', 'link-69');">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-2995" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2995', 'nsmap', 'link-202');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</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">e2</tt> <tt class="py-op">=</tt> <tt id="link-2996" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2991', 'Element', 'link-69');">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-2992" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2992', 'nsmap', 'link-202');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
+<a name="L2828"></a><tt class="py-lineno">2828</tt>  <tt class="py-line">        <tt class="py-name">e2</tt> <tt class="py-op">=</tt> <tt id="link-2993" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9209,38 +9205,38 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2996', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2997" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2993', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2994" 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-2997', 'Element', 'link-69');">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-2998" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2998', 'nsmap', 'link-202');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
-<a name="L2816"></a><tt class="py-lineno">2816</tt>  <tt class="py-line"> </tt>
-<a name="L2817"></a><tt class="py-lineno">2817</tt>  <tt class="py-line">        <tt class="py-name">e1</tt><tt class="py-op">.</tt><tt id="link-2999" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2999', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">e2</tt><tt class="py-op">)</tt> </tt>
-<a name="L2818"></a><tt class="py-lineno">2818</tt>  <tt class="py-line"> </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">None</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">e1</tt><tt class="py-op">.</tt><tt id="link-3000" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-3000', 'prefix', 'link-2467');">prefix</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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">None</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">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-3001" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-3001', 'prefix', 'link-2467');">prefix</a></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-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2827"></a><tt class="py-lineno">2827</tt>  <tt class="py-line">            <tt class="py-name">e1</tt><tt class="py-op">.</tt><tt id="link-3002" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2994', 'Element', 'link-69');">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-2995" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2995', 'nsmap', 'link-202');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
+<a name="L2829"></a><tt class="py-lineno">2829</tt>  <tt class="py-line"> </tt>
+<a name="L2830"></a><tt class="py-lineno">2830</tt>  <tt class="py-line">        <tt class="py-name">e1</tt><tt class="py-op">.</tt><tt id="link-2996" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2996', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">e2</tt><tt class="py-op">)</tt> </tt>
+<a name="L2831"></a><tt class="py-lineno">2831</tt>  <tt class="py-line"> </tt>
+<a name="L2832"></a><tt class="py-lineno">2832</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2833"></a><tt class="py-lineno">2833</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L2834"></a><tt class="py-lineno">2834</tt>  <tt class="py-line">            <tt class="py-name">e1</tt><tt class="py-op">.</tt><tt id="link-2997" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2997', 'prefix', 'link-2464');">prefix</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2836"></a><tt class="py-lineno">2836</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L2837"></a><tt class="py-lineno">2837</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-2998" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2998', 'prefix', 'link-2464');">prefix</a></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-string">'{http://ns.infrae.com/foo}bar'</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">e1</tt><tt class="py-op">.</tt><tt id="link-2999" 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-3002', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2828"></a><tt class="py-lineno">2828</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2829"></a><tt class="py-lineno">2829</tt>  <tt class="py-line">            <tt class="py-string">'{http://ns.infrae.com/foo}bar'</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">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-3003" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2999', 'tag', 'link-73');">tag</a></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">'{http://ns.infrae.com/foo}bar'</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">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-3000" 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-3003', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2831"></a><tt class="py-lineno">2831</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_namespaces_copy_element"></a><div id="ETreeOnlyTestCase.test_namespaces_copy_element-def"><a name="L2832"></a><tt class="py-lineno">2832</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="L2833"></a><tt class="py-lineno">2833</tt>  <tt class="py-line">        <tt id="link-3004" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3000', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2844"></a><tt class="py-lineno">2844</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_namespaces_copy_element"></a><div id="ETreeOnlyTestCase.test_namespaces_copy_element-def"><a name="L2845"></a><tt class="py-lineno">2845</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="L2846"></a><tt class="py-lineno">2846</tt>  <tt class="py-line">        <tt id="link-3001" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9248,7 +9244,7 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3004', 'etree', 'link-3');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3005" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3001', 'etree', 'link-3');">etree</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.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9256,10 +9252,10 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3005', 'etree', 'link-3');">etree</a></tt> </tt>
-<a name="L2834"></a><tt class="py-lineno">2834</tt>  <tt class="py-line"> </tt>
-<a name="L2835"></a><tt class="py-lineno">2835</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="L2836"></a><tt class="py-lineno">2836</tt>  <tt class="py-line">        <tt class="py-name">e1</tt> <tt class="py-op">=</tt> <tt id="link-3006" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3002', 'etree', 'link-3');">etree</a></tt> </tt>
+<a name="L2847"></a><tt class="py-lineno">2847</tt>  <tt class="py-line"> </tt>
+<a name="L2848"></a><tt class="py-lineno">2848</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="L2849"></a><tt class="py-lineno">2849</tt>  <tt class="py-line">        <tt class="py-name">e1</tt> <tt class="py-op">=</tt> <tt id="link-3003" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9267,11 +9263,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3006', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><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-3003', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3004" 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-69');">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-3008" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-3008', 'nsmap', 'link-202');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
-<a name="L2837"></a><tt class="py-lineno">2837</tt>  <tt class="py-line">        <tt class="py-name">e2</tt> <tt class="py-op">=</tt> <tt id="link-3009" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3004', 'Element', 'link-69');">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-3005" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-3005', 'nsmap', 'link-202');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</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">e2</tt> <tt class="py-op">=</tt> <tt id="link-3006" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9279,39 +9275,39 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3009', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3010" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3006', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3007" 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-3010', 'Element', 'link-69');">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-3011" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-3011', 'nsmap', 'link-202');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
-<a name="L2838"></a><tt class="py-lineno">2838</tt>  <tt class="py-line"> </tt>
-<a name="L2839"></a><tt class="py-lineno">2839</tt>  <tt class="py-line">        <tt class="py-name">e1</tt><tt class="py-op">.</tt><tt id="link-3012" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3012', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">e2</tt><tt class="py-op">)</tt> </tt>
-<a name="L2840"></a><tt class="py-lineno">2840</tt>  <tt class="py-line"> </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-name">None</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">e1</tt><tt class="py-op">.</tt><tt id="link-3013" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-3013', 'prefix', 'link-2467');">prefix</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">assertNotEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2845"></a><tt class="py-lineno">2845</tt>  <tt class="py-line">            <tt class="py-name">None</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">e2</tt><tt class="py-op">.</tt><tt id="link-3014" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-3014', 'prefix', 'link-2467');">prefix</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-string">'{http://ns.infrae.com/BAR}bar'</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">e1</tt><tt class="py-op">.</tt><tt id="link-3015" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3007', 'Element', 'link-69');">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-3008" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-3008', 'nsmap', 'link-202');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</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">e1</tt><tt class="py-op">.</tt><tt id="link-3009" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3009', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">e2</tt><tt class="py-op">)</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2855"></a><tt class="py-lineno">2855</tt>  <tt class="py-line">            <tt class="py-name">None</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">e1</tt><tt class="py-op">.</tt><tt id="link-3010" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-3010', 'prefix', 'link-2464');">prefix</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertNotEqual</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">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L2859"></a><tt class="py-lineno">2859</tt>  <tt class="py-line">            <tt class="py-name">e2</tt><tt class="py-op">.</tt><tt id="link-3011" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-3011', 'prefix', 'link-2464');">prefix</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2860"></a><tt class="py-lineno">2860</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2861"></a><tt class="py-lineno">2861</tt>  <tt class="py-line">            <tt class="py-string">'{http://ns.infrae.com/BAR}bar'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2862"></a><tt class="py-lineno">2862</tt>  <tt class="py-line">            <tt class="py-name">e1</tt><tt class="py-op">.</tt><tt id="link-3012" 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-3015', 'tag', 'link-73');">tag</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2851"></a><tt class="py-lineno">2851</tt>  <tt class="py-line">            <tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2852"></a><tt class="py-lineno">2852</tt>  <tt class="py-line">            <tt class="py-name">e2</tt><tt class="py-op">.</tt><tt id="link-3016" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3012', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2863"></a><tt class="py-lineno">2863</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2864"></a><tt class="py-lineno">2864</tt>  <tt class="py-line">            <tt class="py-string">'{http://ns.infrae.com/foo}bar'</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">e2</tt><tt class="py-op">.</tt><tt id="link-3013" 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-3016', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2853"></a><tt class="py-lineno">2853</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="L2854"></a><tt class="py-lineno">2854</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="L2855"></a><tt class="py-lineno">2855</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="L2856"></a><tt class="py-lineno">2856</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-3017" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3013', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2866"></a><tt class="py-lineno">2866</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="L2867"></a><tt class="py-lineno">2867</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="L2868"></a><tt class="py-lineno">2868</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="L2869"></a><tt class="py-lineno">2869</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-3014" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9319,14 +9315,14 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3017', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3018" class="py-name"><a title="lxml.etree.fromstring
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3014', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3015" 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-3018', 'fromstring', 'link-850');">fromstring</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L2857"></a><tt class="py-lineno">2857</tt>  <tt class="py-line">            <tt id="link-3019" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3019', '_bytes', 'link-18');">_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="L2858"></a><tt class="py-lineno">2858</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="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">two</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3020" class="py-name"><a title="lxml.etree
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-3015', 'fromstring', 'link-847');">fromstring</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L2870"></a><tt class="py-lineno">2870</tt>  <tt class="py-line">            <tt id="link-3016" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3016', '_bytes', 'link-18');">_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="L2871"></a><tt class="py-lineno">2871</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="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">two</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3017" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9334,23 +9330,23 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3020', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3021" class="py-name"><a title="lxml.etree.fromstring
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3017', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3018" 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-3021', 'fromstring', 'link-850');">fromstring</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L2861"></a><tt class="py-lineno">2861</tt>  <tt class="py-line">            <tt id="link-3022" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3022', '_bytes', 'link-18');">_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="L2862"></a><tt class="py-lineno">2862</tt>  <tt class="py-line">        <tt class="py-name">two</tt><tt class="py-op">.</tt><tt id="link-3023" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3023', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">baz</tt><tt class="py-op">)</tt> </tt>
-<a name="L2863"></a><tt class="py-lineno">2863</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="L2864"></a><tt class="py-lineno">2864</tt>  <tt class="py-line"> </tt>
-<a name="L2865"></a><tt class="py-lineno">2865</tt>  <tt class="py-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-3024" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-3018', 'fromstring', 'link-847');">fromstring</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L2874"></a><tt class="py-lineno">2874</tt>  <tt class="py-line">            <tt id="link-3019" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3019', '_bytes', 'link-18');">_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="L2875"></a><tt class="py-lineno">2875</tt>  <tt class="py-line">        <tt class="py-name">two</tt><tt class="py-op">.</tt><tt id="link-3020" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3020', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">baz</tt><tt class="py-op">)</tt> </tt>
+<a name="L2876"></a><tt class="py-lineno">2876</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="L2877"></a><tt class="py-lineno">2877</tt>  <tt class="py-line"> </tt>
+<a name="L2878"></a><tt class="py-lineno">2878</tt>  <tt class="py-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-3021" 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-3024', 'tag', 'link-73');">tag</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2867"></a><tt class="py-lineno">2867</tt>  <tt class="py-line">            <tt id="link-3025" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3025', '_bytes', 'link-18');">_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="L2868"></a><tt class="py-lineno">2868</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3026" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3021', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2879"></a><tt class="py-lineno">2879</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2880"></a><tt class="py-lineno">2880</tt>  <tt class="py-line">            <tt id="link-3022" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3022', '_bytes', 'link-18');">_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="L2881"></a><tt class="py-lineno">2881</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3023" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9358,17 +9354,17 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3026', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3027" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3027', 'tostring', 'link-237');">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="L2869"></a><tt class="py-lineno">2869</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_namespace_cleanup"></a><div id="ETreeOnlyTestCase.test_namespace_cleanup-def"><a name="L2870"></a><tt class="py-lineno">2870</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="L2871"></a><tt class="py-lineno">2871</tt>  <tt class="py-line">        <tt id="link-3028" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3028', 'xml', 'link-361');">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-18');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L2872"></a><tt class="py-lineno">2872</tt>  <tt class="py-line">            <tt class="py-string">'&lt;foo xmlns="F" xmlns:x="x"&gt;'</tt> </tt>
-<a name="L2873"></a><tt class="py-lineno">2873</tt>  <tt class="py-line">            <tt class="py-string">'&lt;bar xmlns:ns="NS" xmlns:b="b" xmlns="B"&gt;'</tt> </tt>
-<a name="L2874"></a><tt class="py-lineno">2874</tt>  <tt class="py-line">            <tt class="py-string">'&lt;ns:baz/&gt;'</tt> </tt>
-<a name="L2875"></a><tt class="py-lineno">2875</tt>  <tt class="py-line">            <tt class="py-string">'&lt;/bar&gt;&lt;/foo&gt;'</tt> </tt>
-<a name="L2876"></a><tt class="py-lineno">2876</tt>  <tt class="py-line">        <tt class="py-op">)</tt> </tt>
-<a name="L2877"></a><tt class="py-lineno">2877</tt>  <tt class="py-line">        <tt id="link-3030" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3030', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3031" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3023', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3024" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3024', 'tostring', 'link-237');">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="L2882"></a><tt class="py-lineno">2882</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_namespace_cleanup"></a><div id="ETreeOnlyTestCase.test_namespace_cleanup-def"><a name="L2883"></a><tt class="py-lineno">2883</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="L2884"></a><tt class="py-lineno">2884</tt>  <tt class="py-line">        <tt id="link-3025" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3025', 'xml', 'link-358');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-3026" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3026', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L2885"></a><tt class="py-lineno">2885</tt>  <tt class="py-line">            <tt class="py-string">'&lt;foo xmlns="F" xmlns:x="x"&gt;'</tt> </tt>
+<a name="L2886"></a><tt class="py-lineno">2886</tt>  <tt class="py-line">            <tt class="py-string">'&lt;bar xmlns:ns="NS" xmlns:b="b" xmlns="B"&gt;'</tt> </tt>
+<a name="L2887"></a><tt class="py-lineno">2887</tt>  <tt class="py-line">            <tt class="py-string">'&lt;ns:baz/&gt;'</tt> </tt>
+<a name="L2888"></a><tt class="py-lineno">2888</tt>  <tt class="py-line">            <tt class="py-string">'&lt;/bar&gt;&lt;/foo&gt;'</tt> </tt>
+<a name="L2889"></a><tt class="py-lineno">2889</tt>  <tt class="py-line">        <tt class="py-op">)</tt> </tt>
+<a name="L2890"></a><tt class="py-lineno">2890</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-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3028" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9376,11 +9372,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3031', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3032" class="py-name"><a title="lxml.etree.fromstring
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3028', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3029" 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-3032', 'fromstring', 'link-850');">fromstring</a></tt><tt class="py-op">(</tt><tt id="link-3033" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3033', 'xml', 'link-361');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2878"></a><tt class="py-lineno">2878</tt>  <tt class="py-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-3034" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3034', 'xml', 'link-361');">xml</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3035" class="py-name"><a title="lxml.etree
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-3029', 'fromstring', 'link-847');">fromstring</a></tt><tt class="py-op">(</tt><tt id="link-3030" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3030', 'xml', 'link-358');">xml</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3031" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3031', 'xml', 'link-358');">xml</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.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9388,9 +9384,9 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3035', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3036" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3036', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3037" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3037', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2879"></a><tt class="py-lineno">2879</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3038" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3032', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3033" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3033', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3034" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3034', 'root', 'link-247');">root</a></tt><tt class="py-op">)</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">self</tt><tt class="py-op">.</tt><tt id="link-3035" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9398,10 +9394,10 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3038', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3039" 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-3039', 'cleanup_namespaces', 'link-3039');">cleanup_namespaces</a></tt><tt class="py-op">(</tt><tt id="link-3040" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3040', 'root', 'link-247');">root</a></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 id="link-3041" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3041', '_bytes', 'link-18');">_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="L2882"></a><tt class="py-lineno">2882</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3042" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3035', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3036" 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-3036', 'cleanup_namespaces', 'link-3036');">cleanup_namespaces</a></tt><tt class="py-op">(</tt><tt id="link-3037" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3037', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2893"></a><tt class="py-lineno">2893</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2894"></a><tt class="py-lineno">2894</tt>  <tt class="py-line">            <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-18');">_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="L2895"></a><tt class="py-lineno">2895</tt>  <tt class="py-line">            <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.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9409,17 +9405,17 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3042', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3043" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3043', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3044" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3044', 'root', 'link-247');">root</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_namespace_cleanup_attributes"></a><div id="ETreeOnlyTestCase.test_namespace_cleanup_attributes-def"><a name="L2884"></a><tt class="py-lineno">2884</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_namespace_cleanup_attributes-toggle" onclick="return toggle('ETreeOnlyTestCase.test_namespace_cleanup_attributes');">-</a><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_attributes">test_namespace_cleanup_attributes</a><tt class="py-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_attributes-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_namespace_cleanup_attributes-expanded"><a name="L2885"></a><tt class="py-lineno">2885</tt>  <tt class="py-line">        <tt id="link-3045" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3045', 'xml', 'link-361');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-3046" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3046', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L2886"></a><tt class="py-lineno">2886</tt>  <tt class="py-line">            <tt class="py-string">'&lt;foo xmlns="F" xmlns:x="X" xmlns:a="A"&gt;'</tt> </tt>
-<a name="L2887"></a><tt class="py-lineno">2887</tt>  <tt class="py-line">            <tt class="py-string">'&lt;bar xmlns:ns="NS" xmlns:b="b" xmlns="B"&gt;'</tt> </tt>
-<a name="L2888"></a><tt class="py-lineno">2888</tt>  <tt class="py-line">            <tt class="py-string">'&lt;ns:baz a:test="attr"/&gt;'</tt> </tt>
-<a name="L2889"></a><tt class="py-lineno">2889</tt>  <tt class="py-line">            <tt class="py-string">'&lt;/bar&gt;&lt;/foo&gt;'</tt> </tt>
-<a name="L2890"></a><tt class="py-lineno">2890</tt>  <tt class="py-line">        <tt class="py-op">)</tt> </tt>
-<a name="L2891"></a><tt class="py-lineno">2891</tt>  <tt class="py-line">        <tt id="link-3047" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3047', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3048" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3039', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3040" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3040', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3041" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3041', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2896"></a><tt class="py-lineno">2896</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_namespace_cleanup_attributes"></a><div id="ETreeOnlyTestCase.test_namespace_cleanup_attributes-def"><a name="L2897"></a><tt class="py-lineno">2897</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_namespace_cleanup_attributes-toggle" onclick="return toggle('ETreeOnlyTestCase.test_namespace_cleanup_attributes');">-</a><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_attributes">test_namespace_cleanup_attributes</a><tt class="py-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_attributes-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_namespace_cleanup_attributes-expanded"><a name="L2898"></a><tt class="py-lineno">2898</tt>  <tt class="py-line">        <tt id="link-3042" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3042', 'xml', 'link-358');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-3043" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3043', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L2899"></a><tt class="py-lineno">2899</tt>  <tt class="py-line">            <tt class="py-string">'&lt;foo xmlns="F" xmlns:x="X" xmlns:a="A"&gt;'</tt> </tt>
+<a name="L2900"></a><tt class="py-lineno">2900</tt>  <tt class="py-line">            <tt class="py-string">'&lt;bar xmlns:ns="NS" xmlns:b="b" xmlns="B"&gt;'</tt> </tt>
+<a name="L2901"></a><tt class="py-lineno">2901</tt>  <tt class="py-line">            <tt class="py-string">'&lt;ns:baz a:test="attr"/&gt;'</tt> </tt>
+<a name="L2902"></a><tt class="py-lineno">2902</tt>  <tt class="py-line">            <tt class="py-string">'&lt;/bar&gt;&lt;/foo&gt;'</tt> </tt>
+<a name="L2903"></a><tt class="py-lineno">2903</tt>  <tt class="py-line">        <tt class="py-op">)</tt> </tt>
+<a name="L2904"></a><tt class="py-lineno">2904</tt>  <tt class="py-line">        <tt id="link-3044" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3044', 'root', 'link-247');">root</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.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9427,11 +9423,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3048', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3049" class="py-name"><a title="lxml.etree.fromstring
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3045', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3046" 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-3049', 'fromstring', 'link-850');">fromstring</a></tt><tt class="py-op">(</tt><tt id="link-3050" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3050', 'xml', 'link-361');">xml</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3051" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3051', 'xml', 'link-361');">xml</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.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-3046', 'fromstring', 'link-847');">fromstring</a></tt><tt class="py-op">(</tt><tt id="link-3047" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3047', 'xml', 'link-358');">xml</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2905"></a><tt class="py-lineno">2905</tt>  <tt class="py-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-3048" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3048', 'xml', 'link-358');">xml</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.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9439,9 +9435,9 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3052', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3053" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3053', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3054" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3054', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2893"></a><tt class="py-lineno">2893</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3055" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3049', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3050" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3050', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3051" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3051', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2906"></a><tt class="py-lineno">2906</tt>  <tt class="py-line">        <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.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9449,13 +9445,13 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3055', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3056" class="py-name"><a title="lxml.etree.cleanup_namespaces" class="py-name" href="#" onclick="return doclink('link-3056', 'cleanup_namespaces', 'link-3039');">cleanup_namespaces</a></tt><tt class="py-op">(</tt><tt id="link-3057" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3057', 'root', 'link-247');">root</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2895"></a><tt class="py-lineno">2895</tt>  <tt class="py-line">            <tt id="link-3058" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3058', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;foo xmlns="F" xmlns:a="A"&gt;'</tt> </tt>
-<a name="L2896"></a><tt class="py-lineno">2896</tt>  <tt class="py-line">                   <tt class="py-string">'&lt;bar xmlns:ns="NS" xmlns="B"&gt;'</tt> </tt>
-<a name="L2897"></a><tt class="py-lineno">2897</tt>  <tt class="py-line">                   <tt class="py-string">'&lt;ns:baz a:test="attr"/&gt;'</tt> </tt>
-<a name="L2898"></a><tt class="py-lineno">2898</tt>  <tt class="py-line">                   <tt class="py-string">'&lt;/bar&gt;&lt;/foo&gt;'</tt><tt class="py-op">)</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">self</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-3052', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3053" class="py-name"><a title="lxml.etree.cleanup_namespaces" class="py-name" href="#" onclick="return doclink('link-3053', 'cleanup_namespaces', 'link-3036');">cleanup_namespaces</a></tt><tt class="py-op">(</tt><tt id="link-3054" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3054', 'root', 'link-247');">root</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2908"></a><tt class="py-lineno">2908</tt>  <tt class="py-line">            <tt id="link-3055" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3055', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;foo xmlns="F" xmlns:a="A"&gt;'</tt> </tt>
+<a name="L2909"></a><tt class="py-lineno">2909</tt>  <tt class="py-line">                   <tt class="py-string">'&lt;bar xmlns:ns="NS" xmlns="B"&gt;'</tt> </tt>
+<a name="L2910"></a><tt class="py-lineno">2910</tt>  <tt class="py-line">                   <tt class="py-string">'&lt;ns:baz a:test="attr"/&gt;'</tt> </tt>
+<a name="L2911"></a><tt class="py-lineno">2911</tt>  <tt class="py-line">                   <tt class="py-string">'&lt;/bar&gt;&lt;/foo&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2912"></a><tt class="py-lineno">2912</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3056" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9463,14 +9459,14 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3059', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3060" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3060', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3061" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3061', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2900"></a><tt class="py-lineno">2900</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_namespace_cleanup_many"></a><div id="ETreeOnlyTestCase.test_namespace_cleanup_many-def"><a name="L2901"></a><tt class="py-lineno">2901</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_namespace_cleanup_many-toggle" onclick="return toggle('ETreeOnlyTestCase.test_namespace_cleanup_many');">-</a><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_many">test_namespace_cleanup_many</a><tt class="py-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_many-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_namespace_cleanup_many-expanded"><a name="L2902"></a><tt class="py-lineno">2902</tt>  <tt class="py-line">        <tt id="link-3062" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3062', 'xml', 'link-361');">xml</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-string">'&lt;n12:foo '</tt> <tt class="py-op">+</tt> </tt>
-<a name="L2903"></a><tt class="py-lineno">2903</tt>  <tt class="py-line">               <tt class="py-string">' '</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-string">'xmlns:n{n}="NS{n}"'</tt><tt class="py-op">.</tt><tt class="py-name">format</tt><tt class="py-op">(</tt><tt class="py-name">n</tt><tt class="py-op">=</tt><tt class="py-name">i</tt><tt class="py-op">)</tt> <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">100</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> </tt>
-<a name="L2904"></a><tt class="py-lineno">2904</tt>  <tt class="py-line">               <tt class="py-string">'&gt;&lt;n68:a/&gt;&lt;/n12:foo&gt;'</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">'utf8'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2905"></a><tt class="py-lineno">2905</tt>  <tt class="py-line">        <tt id="link-3063" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3063', 'root', 'link-247');">root</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.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3056', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3057" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3057', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3058" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3058', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2913"></a><tt class="py-lineno">2913</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_namespace_cleanup_many"></a><div id="ETreeOnlyTestCase.test_namespace_cleanup_many-def"><a name="L2914"></a><tt class="py-lineno">2914</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_namespace_cleanup_many-toggle" onclick="return toggle('ETreeOnlyTestCase.test_namespace_cleanup_many');">-</a><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_many">test_namespace_cleanup_many</a><tt class="py-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_many-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_namespace_cleanup_many-expanded"><a name="L2915"></a><tt class="py-lineno">2915</tt>  <tt class="py-line">        <tt id="link-3059" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3059', 'xml', 'link-358');">xml</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-string">'&lt;n12:foo '</tt> <tt class="py-op">+</tt> </tt>
+<a name="L2916"></a><tt class="py-lineno">2916</tt>  <tt class="py-line">               <tt class="py-string">' '</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-string">'xmlns:n{n}="NS{n}"'</tt><tt class="py-op">.</tt><tt class="py-name">format</tt><tt class="py-op">(</tt><tt class="py-name">n</tt><tt class="py-op">=</tt><tt class="py-name">i</tt><tt class="py-op">)</tt> <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">100</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> </tt>
+<a name="L2917"></a><tt class="py-lineno">2917</tt>  <tt class="py-line">               <tt class="py-string">'&gt;&lt;n68:a/&gt;&lt;/n12:foo&gt;'</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">'utf8'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2918"></a><tt class="py-lineno">2918</tt>  <tt class="py-line">        <tt id="link-3060" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3060', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3061" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9478,11 +9474,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3064', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3065" class="py-name"><a title="lxml.etree.fromstring
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3061', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3062" 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-3065', 'fromstring', 'link-850');">fromstring</a></tt><tt class="py-op">(</tt><tt id="link-3066" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3066', 'xml', 'link-361');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2906"></a><tt class="py-lineno">2906</tt>  <tt class="py-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-3067" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3067', 'xml', 'link-361');">xml</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.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-3062', 'fromstring', 'link-847');">fromstring</a></tt><tt class="py-op">(</tt><tt id="link-3063" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3063', 'xml', 'link-358');">xml</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2919"></a><tt class="py-lineno">2919</tt>  <tt class="py-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-3064" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3064', 'xml', 'link-358');">xml</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3065" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9490,9 +9486,9 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3068', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3069" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3069', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3070" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3070', 'root', 'link-247');">root</a></tt><tt class="py-op">)</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">self</tt><tt class="py-op">.</tt><tt id="link-3071" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3065', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3066" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3066', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3067" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3067', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2920"></a><tt class="py-lineno">2920</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3068" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9500,10 +9496,10 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3071', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3072" class="py-name"><a title="lxml.etree.cleanup_namespaces" class="py-name" href="#" onclick="return doclink('link-3072', 'cleanup_namespaces', 'link-3039');">cleanup_namespaces</a></tt><tt class="py-op">(</tt><tt id="link-3073" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3073', 'root', 'link-247');">root</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2909"></a><tt class="py-lineno">2909</tt>  <tt class="py-line">            <tt class="py-string">b'&lt;n12:foo xmlns:n12="NS12" xmlns:n68="NS68"&gt;&lt;n68:a/&gt;&lt;/n12:foo&gt;'</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">self</tt><tt class="py-op">.</tt><tt id="link-3074" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3068', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3069" class="py-name"><a title="lxml.etree.cleanup_namespaces" class="py-name" href="#" onclick="return doclink('link-3069', 'cleanup_namespaces', 'link-3036');">cleanup_namespaces</a></tt><tt class="py-op">(</tt><tt id="link-3070" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3070', 'root', 'link-247');">root</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2922"></a><tt class="py-lineno">2922</tt>  <tt class="py-line">            <tt class="py-string">b'&lt;n12:foo xmlns:n12="NS12" xmlns:n68="NS68"&gt;&lt;n68:a/&gt;&lt;/n12:foo&gt;'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2923"></a><tt class="py-lineno">2923</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3071" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9511,14 +9507,14 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3074', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3075" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3075', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3076" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3076', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2911"></a><tt class="py-lineno">2911</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_namespace_cleanup_deep"></a><div id="ETreeOnlyTestCase.test_namespace_cleanup_deep-def"><a name="L2912"></a><tt class="py-lineno">2912</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_namespace_cleanup_deep-toggle" onclick="return toggle('ETreeOnlyTestCase.test_namespace_cleanup_deep');">-</a><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_deep">test_namespace_cleanup_deep</a><tt class="py-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_deep-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_namespace_cleanup_deep-expanded"><a name="L2913"></a><tt class="py-lineno">2913</tt>  <tt class="py-line">        <tt id="link-3077" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3077', 'xml', 'link-361');">xml</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;'</tt> <tt class="py-op">+</tt> </tt>
-<a name="L2914"></a><tt class="py-lineno">2914</tt>  <tt class="py-line">               <tt class="py-string">''</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns:n{n}="NS{n}"&gt;'</tt><tt class="py-op">.</tt><tt class="py-name">format</tt><tt class="py-op">(</tt><tt class="py-name">n</tt><tt class="py-op">=</tt><tt class="py-name">i</tt><tt class="py-op">)</tt> <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">100</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> </tt>
-<a name="L2915"></a><tt class="py-lineno">2915</tt>  <tt class="py-line">               <tt class="py-string">'&lt;n64:x/&gt;'</tt> <tt class="py-op">+</tt> <tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">100</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-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'utf8'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2916"></a><tt class="py-lineno">2916</tt>  <tt class="py-line">        <tt id="link-3078" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3078', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3079" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3071', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3072" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3072', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3073" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3073', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2924"></a><tt class="py-lineno">2924</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_namespace_cleanup_deep"></a><div id="ETreeOnlyTestCase.test_namespace_cleanup_deep-def"><a name="L2925"></a><tt class="py-lineno">2925</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_namespace_cleanup_deep-toggle" onclick="return toggle('ETreeOnlyTestCase.test_namespace_cleanup_deep');">-</a><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_deep">test_namespace_cleanup_deep</a><tt class="py-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_deep-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_namespace_cleanup_deep-expanded"><a name="L2926"></a><tt class="py-lineno">2926</tt>  <tt class="py-line">        <tt id="link-3074" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3074', 'xml', 'link-358');">xml</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;'</tt> <tt class="py-op">+</tt> </tt>
+<a name="L2927"></a><tt class="py-lineno">2927</tt>  <tt class="py-line">               <tt class="py-string">''</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns:n{n}="NS{n}"&gt;'</tt><tt class="py-op">.</tt><tt class="py-name">format</tt><tt class="py-op">(</tt><tt class="py-name">n</tt><tt class="py-op">=</tt><tt class="py-name">i</tt><tt class="py-op">)</tt> <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">100</tt><tt class="py-op">)</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-string">'&lt;n64:x/&gt;'</tt> <tt class="py-op">+</tt> <tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">100</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-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'utf8'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2929"></a><tt class="py-lineno">2929</tt>  <tt class="py-line">        <tt id="link-3075" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3075', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3076" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9526,11 +9522,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3079', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3080" class="py-name"><a title="lxml.etree.fromstring
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3076', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3077" 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-3080', 'fromstring', 'link-850');">fromstring</a></tt><tt class="py-op">(</tt><tt id="link-3081" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3081', 'xml', 'link-361');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2917"></a><tt class="py-lineno">2917</tt>  <tt class="py-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-3082" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3082', 'xml', 'link-361');">xml</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3083" class="py-name"><a title="lxml.etree
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-3077', 'fromstring', 'link-847');">fromstring</a></tt><tt class="py-op">(</tt><tt id="link-3078" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3078', 'xml', 'link-358');">xml</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3079" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3079', 'xml', 'link-358');">xml</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3080" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9538,9 +9534,9 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3083', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3084" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3084', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3085" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3085', 'root', 'link-247');">root</a></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">self</tt><tt class="py-op">.</tt><tt id="link-3086" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3080', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3081" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3081', 'tostring', 'link-237');">tostring</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-247');">root</a></tt><tt class="py-op">)</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">self</tt><tt class="py-op">.</tt><tt id="link-3083" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9548,11 +9544,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3086', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3087" class="py-name"><a title="lxml.etree.cleanup_namespaces" class="py-name" href="#" onclick="return doclink('link-3087', 'cleanup_namespaces', 'link-3039');">cleanup_namespaces</a></tt><tt class="py-op">(</tt><tt id="link-3088" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3088', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2919"></a><tt class="py-lineno">2919</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2920"></a><tt class="py-lineno">2920</tt>  <tt class="py-line">            <tt class="py-string">b'&lt;root&gt;'</tt> <tt class="py-op">+</tt> <tt class="py-string">b'&lt;a&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">64</tt> <tt class="py-op">+</tt> <tt class="py-string">b'&lt;a xmlns:n64="NS64"&gt;'</tt> <tt class="py-op">+</tt> <tt class="py-string">b'&lt;a&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">35</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">b'&lt;n64:x/&gt;'</tt> <tt class="py-op">+</tt> <tt class="py-string">b'&lt;/a&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">100</tt> <tt class="py-op">+</tt> <tt class="py-string">b'&lt;/root&gt;'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2922"></a><tt class="py-lineno">2922</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3089" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3083', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3084" class="py-name"><a title="lxml.etree.cleanup_namespaces" class="py-name" href="#" onclick="return doclink('link-3084', 'cleanup_namespaces', 'link-3036');">cleanup_namespaces</a></tt><tt class="py-op">(</tt><tt id="link-3085" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3085', 'root', 'link-247');">root</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2933"></a><tt class="py-lineno">2933</tt>  <tt class="py-line">            <tt class="py-string">b'&lt;root&gt;'</tt> <tt class="py-op">+</tt> <tt class="py-string">b'&lt;a&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">64</tt> <tt class="py-op">+</tt> <tt class="py-string">b'&lt;a xmlns:n64="NS64"&gt;'</tt> <tt class="py-op">+</tt> <tt class="py-string">b'&lt;a&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">35</tt> <tt class="py-op">+</tt> </tt>
+<a name="L2934"></a><tt class="py-lineno">2934</tt>  <tt class="py-line">            <tt class="py-string">b'&lt;n64:x/&gt;'</tt> <tt class="py-op">+</tt> <tt class="py-string">b'&lt;/a&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">100</tt> <tt class="py-op">+</tt> <tt class="py-string">b'&lt;/root&gt;'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2935"></a><tt class="py-lineno">2935</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3086" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9560,16 +9556,16 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3089', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3090" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3090', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3091" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3091', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2923"></a><tt class="py-lineno">2923</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_namespace_cleanup_deep_to_top"></a><div id="ETreeOnlyTestCase.test_namespace_cleanup_deep_to_top-def"><a name="L2924"></a><tt class="py-lineno">2924</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_namespace_cleanup_deep_to_top-toggle" onclick="return toggle('ETreeOnlyTestCase.test_namespace_cleanup_deep_to_top');">-</a><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_deep_to_top">test_namespace_cleanup_deep_to_top</a><tt class="py-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_deep_to_top-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_namespace_cleanup_deep_to_top-expanded"><a name="L2925"></a><tt class="py-lineno">2925</tt>  <tt class="py-line">        <tt id="link-3092" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3092', 'xml', 'link-361');">xml</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;'</tt> <tt class="py-op">+</tt> </tt>
-<a name="L2926"></a><tt class="py-lineno">2926</tt>  <tt class="py-line">               <tt class="py-string">''</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns:n{n}="NS{n}"&gt;'</tt><tt class="py-op">.</tt><tt class="py-name">format</tt><tt class="py-op">(</tt><tt class="py-name">n</tt><tt class="py-op">=</tt><tt class="py-name">i</tt><tt class="py-op">)</tt> <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">100</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> </tt>
-<a name="L2927"></a><tt class="py-lineno">2927</tt>  <tt class="py-line">               <tt class="py-string">'&lt;n64:x xmlns:a="A" a:attr="X"/&gt;'</tt> <tt class="py-op">+</tt> </tt>
-<a name="L2928"></a><tt class="py-lineno">2928</tt>  <tt class="py-line">               <tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">100</tt> <tt class="py-op">+</tt> </tt>
-<a name="L2929"></a><tt class="py-lineno">2929</tt>  <tt class="py-line">               <tt class="py-string">'&lt;/root&gt;'</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">'utf8'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2930"></a><tt class="py-lineno">2930</tt>  <tt class="py-line">        <tt id="link-3093" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3093', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3094" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3086', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3087" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3087', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3088" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3088', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2936"></a><tt class="py-lineno">2936</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_namespace_cleanup_deep_to_top"></a><div id="ETreeOnlyTestCase.test_namespace_cleanup_deep_to_top-def"><a name="L2937"></a><tt class="py-lineno">2937</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_namespace_cleanup_deep_to_top-toggle" onclick="return toggle('ETreeOnlyTestCase.test_namespace_cleanup_deep_to_top');">-</a><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_deep_to_top">test_namespace_cleanup_deep_to_top</a><tt class="py-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_deep_to_top-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_namespace_cleanup_deep_to_top-expanded"><a name="L2938"></a><tt class="py-lineno">2938</tt>  <tt class="py-line">        <tt id="link-3089" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3089', 'xml', 'link-358');">xml</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;'</tt> <tt class="py-op">+</tt> </tt>
+<a name="L2939"></a><tt class="py-lineno">2939</tt>  <tt class="py-line">               <tt class="py-string">''</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns:n{n}="NS{n}"&gt;'</tt><tt class="py-op">.</tt><tt class="py-name">format</tt><tt class="py-op">(</tt><tt class="py-name">n</tt><tt class="py-op">=</tt><tt class="py-name">i</tt><tt class="py-op">)</tt> <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">100</tt><tt class="py-op">)</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-string">'&lt;n64:x xmlns:a="A" a:attr="X"/&gt;'</tt> <tt class="py-op">+</tt> </tt>
+<a name="L2941"></a><tt class="py-lineno">2941</tt>  <tt class="py-line">               <tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">100</tt> <tt class="py-op">+</tt> </tt>
+<a name="L2942"></a><tt class="py-lineno">2942</tt>  <tt class="py-line">               <tt class="py-string">'&lt;/root&gt;'</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">'utf8'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2943"></a><tt class="py-lineno">2943</tt>  <tt class="py-line">        <tt id="link-3090" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3090', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3091" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9577,11 +9573,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3094', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3095" class="py-name"><a title="lxml.etree.fromstring
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3091', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3092" 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-3095', 'fromstring', 'link-850');">fromstring</a></tt><tt class="py-op">(</tt><tt id="link-3096" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3096', 'xml', 'link-361');">xml</a></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">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.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3097', 'xml', 'link-361');">xml</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3098" class="py-name"><a title="lxml.etree
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-3092', 'fromstring', 'link-847');">fromstring</a></tt><tt class="py-op">(</tt><tt id="link-3093" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3093', 'xml', 'link-358');">xml</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2944"></a><tt class="py-lineno">2944</tt>  <tt class="py-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-3094" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3094', 'xml', 'link-358');">xml</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3095" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9589,9 +9585,9 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3098', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3099" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3099', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3100" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3100', 'root', 'link-247');">root</a></tt><tt class="py-op">)</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">self</tt><tt class="py-op">.</tt><tt id="link-3101" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3095', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3096" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3096', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3097" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3097', 'root', 'link-247');">root</a></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">self</tt><tt class="py-op">.</tt><tt id="link-3098" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9599,11 +9595,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3101', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3102" class="py-name"><a title="lxml.etree.cleanup_namespaces" class="py-name" href="#" onclick="return doclink('link-3102', 'cleanup_namespaces', 'link-3039');">cleanup_namespaces</a></tt><tt class="py-op">(</tt><tt id="link-3103" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3103', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">top_nsmap</tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-string">'n64'</tt><tt class="py-op">:</tt> <tt class="py-string">'NS64'</tt><tt class="py-op">}</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2934"></a><tt class="py-lineno">2934</tt>  <tt class="py-line">            <tt class="py-string">b'&lt;root xmlns:n64="NS64"&gt;'</tt> <tt class="py-op">+</tt> <tt class="py-string">b'&lt;a&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">100</tt> <tt class="py-op">+</tt> </tt>
-<a name="L2935"></a><tt class="py-lineno">2935</tt>  <tt class="py-line">            <tt class="py-string">b'&lt;n64:x xmlns:a="A" a:attr="X"/&gt;'</tt> <tt class="py-op">+</tt> <tt class="py-string">b'&lt;/a&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">100</tt> <tt class="py-op">+</tt> <tt class="py-string">b'&lt;/root&gt;'</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">self</tt><tt class="py-op">.</tt><tt id="link-3104" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3098', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3099" class="py-name"><a title="lxml.etree.cleanup_namespaces" class="py-name" href="#" onclick="return doclink('link-3099', 'cleanup_namespaces', 'link-3036');">cleanup_namespaces</a></tt><tt class="py-op">(</tt><tt id="link-3100" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3100', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">top_nsmap</tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-string">'n64'</tt><tt class="py-op">:</tt> <tt class="py-string">'NS64'</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 class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2947"></a><tt class="py-lineno">2947</tt>  <tt class="py-line">            <tt class="py-string">b'&lt;root xmlns:n64="NS64"&gt;'</tt> <tt class="py-op">+</tt> <tt class="py-string">b'&lt;a&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">100</tt> <tt class="py-op">+</tt> </tt>
+<a name="L2948"></a><tt class="py-lineno">2948</tt>  <tt class="py-line">            <tt class="py-string">b'&lt;n64:x xmlns:a="A" a:attr="X"/&gt;'</tt> <tt class="py-op">+</tt> <tt class="py-string">b'&lt;/a&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">100</tt> <tt class="py-op">+</tt> <tt class="py-string">b'&lt;/root&gt;'</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">self</tt><tt class="py-op">.</tt><tt id="link-3101" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9611,15 +9607,15 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3104', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3105" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3105', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3106" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3106', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2937"></a><tt class="py-lineno">2937</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_namespace_cleanup_keep_prefixes"></a><div id="ETreeOnlyTestCase.test_namespace_cleanup_keep_prefixes-def"><a name="L2938"></a><tt class="py-lineno">2938</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_namespace_cleanup_keep_prefixes-toggle" onclick="return toggle('ETreeOnlyTestCase.test_namespace_cleanup_keep_prefixes');">-</a><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_keep_prefixes">test_namespace_cleanup_keep_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="ETreeOnlyTestCase.test_namespace_cleanup_keep_prefixes-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_namespace_cleanup_keep_prefixes-expanded"><a name="L2939"></a><tt class="py-lineno">2939</tt>  <tt class="py-line">        <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-361');">xml</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-string">'&lt;root xmlns:n64="NS64" xmlns:foo="FOO" xmlns:unused1="UNUSED" xmlns:no="NO"&gt;'</tt> </tt>
-<a name="L2940"></a><tt class="py-lineno">2940</tt>  <tt class="py-line">               <tt class="py-string">'&lt;a xmlns:unused2="UNUSED"&gt;&lt;n64:x xmlns:a="A" a:attr="X"/&gt;&lt;/a&gt;'</tt> </tt>
-<a name="L2941"></a><tt class="py-lineno">2941</tt>  <tt class="py-line">               <tt class="py-string">'&lt;foo&gt;foo:bar&lt;/foo&gt;'</tt> </tt>
-<a name="L2942"></a><tt class="py-lineno">2942</tt>  <tt class="py-line">               <tt class="py-string">'&lt;/root&gt;'</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">'utf8'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2943"></a><tt class="py-lineno">2943</tt>  <tt class="py-line">        <tt id="link-3108" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3108', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3109" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3101', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3102" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3102', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3103" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3103', 'root', 'link-247');">root</a></tt><tt class="py-op">)</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_namespace_cleanup_keep_prefixes"></a><div id="ETreeOnlyTestCase.test_namespace_cleanup_keep_prefixes-def"><a name="L2951"></a><tt class="py-lineno">2951</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_namespace_cleanup_keep_prefixes-toggle" onclick="return toggle('ETreeOnlyTestCase.test_namespace_cleanup_keep_prefixes');">-</a><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_keep_prefixes">test_namespace_cleanup_keep_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="ETreeOnlyTestCase.test_namespace_cleanup_keep_prefixes-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_namespace_cleanup_keep_prefixes-expanded"><a name="L2952"></a><tt class="py-lineno">2952</tt>  <tt class="py-line">        <tt id="link-3104" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3104', 'xml', 'link-358');">xml</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-string">'&lt;root xmlns:n64="NS64" xmlns:foo="FOO" xmlns:unused1="UNUSED" xmlns:no="NO"&gt;'</tt> </tt>
+<a name="L2953"></a><tt class="py-lineno">2953</tt>  <tt class="py-line">               <tt class="py-string">'&lt;a xmlns:unused2="UNUSED"&gt;&lt;n64:x xmlns:a="A" a:attr="X"/&gt;&lt;/a&gt;'</tt> </tt>
+<a name="L2954"></a><tt class="py-lineno">2954</tt>  <tt class="py-line">               <tt class="py-string">'&lt;foo&gt;foo:bar&lt;/foo&gt;'</tt> </tt>
+<a name="L2955"></a><tt class="py-lineno">2955</tt>  <tt class="py-line">               <tt class="py-string">'&lt;/root&gt;'</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">'utf8'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2956"></a><tt class="py-lineno">2956</tt>  <tt class="py-line">        <tt id="link-3105" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3105', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</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.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9627,11 +9623,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3109', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3110" class="py-name"><a title="lxml.etree.fromstring
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3106', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3107" 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-3110', 'fromstring', 'link-850');">fromstring</a></tt><tt class="py-op">(</tt><tt id="link-3111" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3111', 'xml', 'link-361');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2944"></a><tt class="py-lineno">2944</tt>  <tt class="py-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.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3112', 'xml', 'link-361');">xml</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3113" class="py-name"><a title="lxml.etree
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-3107', 'fromstring', 'link-847');">fromstring</a></tt><tt class="py-op">(</tt><tt id="link-3108" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3108', 'xml', 'link-358');">xml</a></tt><tt class="py-op">)</tt> </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 id="link-3109" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3109', 'xml', 'link-358');">xml</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3110" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9639,9 +9635,9 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3113', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3114" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3114', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3115" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3115', 'root', 'link-247');">root</a></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">self</tt><tt class="py-op">.</tt><tt id="link-3116" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3110', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3111" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3111', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3112" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3112', 'root', 'link-247');">root</a></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-name">self</tt><tt class="py-op">.</tt><tt id="link-3113" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9649,13 +9645,13 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3116', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3117" class="py-name"><a title="lxml.etree.cleanup_namespaces" class="py-name" href="#" onclick="return doclink('link-3117', 'cleanup_namespaces', 'link-3039');">cleanup_namespaces</a></tt><tt class="py-op">(</tt><tt id="link-3118" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3118', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">keep_ns_prefixes</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-op">)</tt> </tt>
-<a name="L2946"></a><tt class="py-lineno">2946</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2947"></a><tt class="py-lineno">2947</tt>  <tt class="py-line">            <tt class="py-string">b'&lt;root xmlns:n64="NS64" xmlns:foo="FOO"&gt;'</tt> </tt>
-<a name="L2948"></a><tt class="py-lineno">2948</tt>  <tt class="py-line">            <tt class="py-string">b'&lt;a&gt;&lt;n64:x xmlns:a="A" a:attr="X"/&gt;&lt;/a&gt;'</tt> </tt>
-<a name="L2949"></a><tt class="py-lineno">2949</tt>  <tt class="py-line">            <tt class="py-string">b'&lt;foo&gt;foo:bar&lt;/foo&gt;'</tt> </tt>
-<a name="L2950"></a><tt class="py-lineno">2950</tt>  <tt class="py-line">            <tt class="py-string">b'&lt;/root&gt;'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2951"></a><tt class="py-lineno">2951</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3119" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3113', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3114" class="py-name"><a title="lxml.etree.cleanup_namespaces" class="py-name" href="#" onclick="return doclink('link-3114', 'cleanup_namespaces', 'link-3036');">cleanup_namespaces</a></tt><tt class="py-op">(</tt><tt id="link-3115" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3115', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">keep_ns_prefixes</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-op">)</tt> </tt>
+<a name="L2959"></a><tt class="py-lineno">2959</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2960"></a><tt class="py-lineno">2960</tt>  <tt class="py-line">            <tt class="py-string">b'&lt;root xmlns:n64="NS64" xmlns:foo="FOO"&gt;'</tt> </tt>
+<a name="L2961"></a><tt class="py-lineno">2961</tt>  <tt class="py-line">            <tt class="py-string">b'&lt;a&gt;&lt;n64:x xmlns:a="A" a:attr="X"/&gt;&lt;/a&gt;'</tt> </tt>
+<a name="L2962"></a><tt class="py-lineno">2962</tt>  <tt class="py-line">            <tt class="py-string">b'&lt;foo&gt;foo:bar&lt;/foo&gt;'</tt> </tt>
+<a name="L2963"></a><tt class="py-lineno">2963</tt>  <tt class="py-line">            <tt class="py-string">b'&lt;/root&gt;'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2964"></a><tt class="py-lineno">2964</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3116" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9663,17 +9659,17 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3119', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3120" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3120', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3121" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3121', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2952"></a><tt class="py-lineno">2952</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_namespace_cleanup_keep_prefixes_top"></a><div id="ETreeOnlyTestCase.test_namespace_cleanup_keep_prefixes_top-def"><a name="L2953"></a><tt class="py-lineno">2953</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_namespace_cleanup_keep_prefixes_top-toggle" onclick="return toggle('ETreeOnlyTestCase.test_namespace_cleanup_keep_prefixes_top');">-</a><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_keep_prefixes_top">test_namespace_cleanup_keep_prefixes_top</a><tt class="py-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_keep_prefixes_top-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_namespace_cleanup_keep_prefixes_top-expanded"><a name="L2954"></a><tt class="py-lineno">2954</tt>  <tt class="py-line">        <tt id="link-3122" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3122', 'xml', 'link-361');">xml</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-string">'&lt;root xmlns:n64="NS64" xmlns:unused1="UNUSED" xmlns:no="NO"&gt;'</tt> </tt>
-<a name="L2955"></a><tt class="py-lineno">2955</tt>  <tt class="py-line">               <tt class="py-string">'&lt;sub xmlns:foo="FOO"&gt;'</tt> </tt>
-<a name="L2956"></a><tt class="py-lineno">2956</tt>  <tt class="py-line">               <tt class="py-string">'&lt;a xmlns:unused2="UNUSED"&gt;&lt;n64:x xmlns:a="A" a:attr="X"/&gt;&lt;/a&gt;'</tt> </tt>
-<a name="L2957"></a><tt class="py-lineno">2957</tt>  <tt class="py-line">               <tt class="py-string">'&lt;foo&gt;foo:bar&lt;/foo&gt;'</tt> </tt>
-<a name="L2958"></a><tt class="py-lineno">2958</tt>  <tt class="py-line">               <tt class="py-string">'&lt;/sub&gt;'</tt> </tt>
-<a name="L2959"></a><tt class="py-lineno">2959</tt>  <tt class="py-line">               <tt class="py-string">'&lt;/root&gt;'</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">'utf8'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2960"></a><tt class="py-lineno">2960</tt>  <tt class="py-line">        <tt id="link-3123" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3123', 'root', 'link-247');">root</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.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3116', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3117" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3117', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3118" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3118', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2965"></a><tt class="py-lineno">2965</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_namespace_cleanup_keep_prefixes_top"></a><div id="ETreeOnlyTestCase.test_namespace_cleanup_keep_prefixes_top-def"><a name="L2966"></a><tt class="py-lineno">2966</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_namespace_cleanup_keep_prefixes_top-toggle" onclick="return toggle('ETreeOnlyTestCase.test_namespace_cleanup_keep_prefixes_top');">-</a><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_keep_prefixes_top">test_namespace_cleanup_keep_prefixes_top</a><tt class="py-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_keep_prefixes_top-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_namespace_cleanup_keep_prefixes_top-expanded"><a name="L2967"></a><tt class="py-lineno">2967</tt>  <tt class="py-line">        <tt id="link-3119" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3119', 'xml', 'link-358');">xml</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-string">'&lt;root xmlns:n64="NS64" xmlns:unused1="UNUSED" xmlns:no="NO"&gt;'</tt> </tt>
+<a name="L2968"></a><tt class="py-lineno">2968</tt>  <tt class="py-line">               <tt class="py-string">'&lt;sub xmlns:foo="FOO"&gt;'</tt> </tt>
+<a name="L2969"></a><tt class="py-lineno">2969</tt>  <tt class="py-line">               <tt class="py-string">'&lt;a xmlns:unused2="UNUSED"&gt;&lt;n64:x xmlns:a="A" a:attr="X"/&gt;&lt;/a&gt;'</tt> </tt>
+<a name="L2970"></a><tt class="py-lineno">2970</tt>  <tt class="py-line">               <tt class="py-string">'&lt;foo&gt;foo:bar&lt;/foo&gt;'</tt> </tt>
+<a name="L2971"></a><tt class="py-lineno">2971</tt>  <tt class="py-line">               <tt class="py-string">'&lt;/sub&gt;'</tt> </tt>
+<a name="L2972"></a><tt class="py-lineno">2972</tt>  <tt class="py-line">               <tt class="py-string">'&lt;/root&gt;'</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">'utf8'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2973"></a><tt class="py-lineno">2973</tt>  <tt class="py-line">        <tt id="link-3120" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3120', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3121" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9681,11 +9677,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3124', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3125" class="py-name"><a title="lxml.etree.fromstring
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3121', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3122" 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-3125', 'fromstring', 'link-850');">fromstring</a></tt><tt class="py-op">(</tt><tt id="link-3126" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3126', 'xml', 'link-361');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2961"></a><tt class="py-lineno">2961</tt>  <tt class="py-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-3127" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3127', 'xml', 'link-361');">xml</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3128" class="py-name"><a title="lxml.etree
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-3122', 'fromstring', 'link-847');">fromstring</a></tt><tt class="py-op">(</tt><tt id="link-3123" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3123', 'xml', 'link-358');">xml</a></tt><tt class="py-op">)</tt> </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 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-358');">xml</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3125" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9693,9 +9689,9 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3128', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3129" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3129', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3130" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3130', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2962"></a><tt class="py-lineno">2962</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3131" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3125', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3126" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3126', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3127" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3127', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</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 id="link-3128" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9703,18 +9699,18 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3131', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3132" class="py-name"><a title="lxml.etree.cleanup_namespaces" class="py-name" href="#" onclick="return doclink('link-3132', 'cleanup_namespaces', 'link-3039');">cleanup_namespaces</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L2963"></a><tt class="py-lineno">2963</tt>  <tt class="py-line">            <tt id="link-3133" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3133', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L2964"></a><tt class="py-lineno">2964</tt>  <tt class="py-line">            <tt class="py-name">top_nsmap</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">'FOO'</tt><tt class="py-op">,</tt> <tt class="py-string">'unused1'</tt><tt class="py-op">:</tt> <tt class="py-string">'UNUSED'</tt><tt class="py-op">}</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">keep_ns_prefixes</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-op">)</tt> </tt>
-<a name="L2966"></a><tt class="py-lineno">2966</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2967"></a><tt class="py-lineno">2967</tt>  <tt class="py-line">            <tt class="py-string">b'&lt;root xmlns:n64="NS64" xmlns:foo="FOO"&gt;'</tt> </tt>
-<a name="L2968"></a><tt class="py-lineno">2968</tt>  <tt class="py-line">            <tt class="py-string">b'&lt;sub&gt;'</tt> </tt>
-<a name="L2969"></a><tt class="py-lineno">2969</tt>  <tt class="py-line">            <tt class="py-string">b'&lt;a&gt;&lt;n64:x xmlns:a="A" a:attr="X"/&gt;&lt;/a&gt;'</tt> </tt>
-<a name="L2970"></a><tt class="py-lineno">2970</tt>  <tt class="py-line">            <tt class="py-string">b'&lt;foo&gt;foo:bar&lt;/foo&gt;'</tt> </tt>
-<a name="L2971"></a><tt class="py-lineno">2971</tt>  <tt class="py-line">            <tt class="py-string">b'&lt;/sub&gt;'</tt> </tt>
-<a name="L2972"></a><tt class="py-lineno">2972</tt>  <tt class="py-line">            <tt class="py-string">b'&lt;/root&gt;'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2973"></a><tt class="py-lineno">2973</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3134" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3128', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3129" class="py-name"><a title="lxml.etree.cleanup_namespaces" class="py-name" href="#" onclick="return doclink('link-3129', 'cleanup_namespaces', 'link-3036');">cleanup_namespaces</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L2976"></a><tt class="py-lineno">2976</tt>  <tt class="py-line">            <tt id="link-3130" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3130', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L2977"></a><tt class="py-lineno">2977</tt>  <tt class="py-line">            <tt class="py-name">top_nsmap</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">'FOO'</tt><tt class="py-op">,</tt> <tt class="py-string">'unused1'</tt><tt class="py-op">:</tt> <tt class="py-string">'UNUSED'</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> </tt>
+<a name="L2978"></a><tt class="py-lineno">2978</tt>  <tt class="py-line">            <tt class="py-name">keep_ns_prefixes</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-op">)</tt> </tt>
+<a name="L2979"></a><tt class="py-lineno">2979</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2980"></a><tt class="py-lineno">2980</tt>  <tt class="py-line">            <tt class="py-string">b'&lt;root xmlns:n64="NS64" xmlns:foo="FOO"&gt;'</tt> </tt>
+<a name="L2981"></a><tt class="py-lineno">2981</tt>  <tt class="py-line">            <tt class="py-string">b'&lt;sub&gt;'</tt> </tt>
+<a name="L2982"></a><tt class="py-lineno">2982</tt>  <tt class="py-line">            <tt class="py-string">b'&lt;a&gt;&lt;n64:x xmlns:a="A" a:attr="X"/&gt;&lt;/a&gt;'</tt> </tt>
+<a name="L2983"></a><tt class="py-lineno">2983</tt>  <tt class="py-line">            <tt class="py-string">b'&lt;foo&gt;foo:bar&lt;/foo&gt;'</tt> </tt>
+<a name="L2984"></a><tt class="py-lineno">2984</tt>  <tt class="py-line">            <tt class="py-string">b'&lt;/sub&gt;'</tt> </tt>
+<a name="L2985"></a><tt class="py-lineno">2985</tt>  <tt class="py-line">            <tt class="py-string">b'&lt;/root&gt;'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2986"></a><tt class="py-lineno">2986</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3131" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9722,11 +9718,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3134', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3135" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3135', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3136" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3136', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2974"></a><tt class="py-lineno">2974</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_element_nsmap"></a><div id="ETreeOnlyTestCase.test_element_nsmap-def"><a name="L2975"></a><tt class="py-lineno">2975</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="L2976"></a><tt class="py-lineno">2976</tt>  <tt class="py-line">        <tt id="link-3137" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3131', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3132" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3132', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3133" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3133', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2987"></a><tt class="py-lineno">2987</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_element_nsmap"></a><div id="ETreeOnlyTestCase.test_element_nsmap-def"><a name="L2988"></a><tt class="py-lineno">2988</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="L2989"></a><tt class="py-lineno">2989</tt>  <tt class="py-line">        <tt id="link-3134" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9734,7 +9730,7 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3137', 'etree', 'link-3');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3138" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3134', 'etree', 'link-3');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3135" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9742,11 +9738,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3138', 'etree', 'link-3');">etree</a></tt> </tt>
-<a name="L2977"></a><tt class="py-lineno">2977</tt>  <tt class="py-line"> </tt>
-<a name="L2978"></a><tt class="py-lineno">2978</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="L2979"></a><tt class="py-lineno">2979</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="L2980"></a><tt class="py-lineno">2980</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-3139" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3135', 'etree', 'link-3');">etree</a></tt> </tt>
+<a name="L2990"></a><tt class="py-lineno">2990</tt>  <tt class="py-line"> </tt>
+<a name="L2991"></a><tt class="py-lineno">2991</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="L2992"></a><tt class="py-lineno">2992</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="L2993"></a><tt class="py-lineno">2993</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-3136" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9754,16 +9750,16 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3139', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3140" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3136', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3137" 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-3140', 'Element', 'link-69');">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-3141" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-3141', 'nsmap', 'link-202');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</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>
-<a name="L2982"></a><tt class="py-lineno">2982</tt>  <tt class="py-line">            <tt class="py-name">r</tt><tt class="py-op">,</tt> </tt>
-<a name="L2983"></a><tt class="py-lineno">2983</tt>  <tt class="py-line">            <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-3142" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-3142', 'nsmap', 'link-202');">nsmap</a></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_subelement_nsmap"></a><div id="ETreeOnlyTestCase.test_subelement_nsmap-def"><a name="L2985"></a><tt class="py-lineno">2985</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="L2986"></a><tt class="py-lineno">2986</tt>  <tt class="py-line">        <tt id="link-3143" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3137', 'Element', 'link-69');">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-3138" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-3138', 'nsmap', 'link-202');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
+<a name="L2994"></a><tt class="py-lineno">2994</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2995"></a><tt class="py-lineno">2995</tt>  <tt class="py-line">            <tt class="py-name">r</tt><tt class="py-op">,</tt> </tt>
+<a name="L2996"></a><tt class="py-lineno">2996</tt>  <tt class="py-line">            <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-3139" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-3139', 'nsmap', 'link-202');">nsmap</a></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_subelement_nsmap"></a><div id="ETreeOnlyTestCase.test_subelement_nsmap-def"><a name="L2998"></a><tt class="py-lineno">2998</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="L2999"></a><tt class="py-lineno">2999</tt>  <tt class="py-line">        <tt id="link-3140" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9771,7 +9767,7 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3143', 'etree', 'link-3');">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-3140', 'etree', 'link-3');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3141" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9779,11 +9775,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3144', 'etree', 'link-3');">etree</a></tt> </tt>
-<a name="L2987"></a><tt class="py-lineno">2987</tt>  <tt class="py-line"> </tt>
-<a name="L2988"></a><tt class="py-lineno">2988</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="L2989"></a><tt class="py-lineno">2989</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="L2990"></a><tt class="py-lineno">2990</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-3145" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3141', 'etree', 'link-3');">etree</a></tt> </tt>
+<a name="L3000"></a><tt class="py-lineno">3000</tt>  <tt class="py-line"> </tt>
+<a name="L3001"></a><tt class="py-lineno">3001</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="L3002"></a><tt class="py-lineno">3002</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="L3003"></a><tt class="py-lineno">3003</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-3142" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9791,14 +9787,14 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3145', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3146" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3142', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3143" 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-3146', 'Element', 'link-69');">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-3147" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-3147', 'nsmap', 'link-202');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">re</tt><tt class="py-op">)</tt> </tt>
-<a name="L2991"></a><tt class="py-lineno">2991</tt>  <tt class="py-line"> </tt>
-<a name="L2992"></a><tt class="py-lineno">2992</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="L2993"></a><tt class="py-lineno">2993</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="L2994"></a><tt class="py-lineno">2994</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3148" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3143', 'Element', 'link-69');">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-3144" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-3144', 'nsmap', 'link-202');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">re</tt><tt class="py-op">)</tt> </tt>
+<a name="L3004"></a><tt class="py-lineno">3004</tt>  <tt class="py-line"> </tt>
+<a name="L3005"></a><tt class="py-lineno">3005</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="L3006"></a><tt class="py-lineno">3006</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="L3007"></a><tt class="py-lineno">3007</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3145" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9806,21 +9802,21 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3148', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3149" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3149', 'SubElement', 'link-112');">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-3150" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-3150', 'nsmap', 'link-202');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">rs</tt><tt class="py-op">)</tt> </tt>
-<a name="L2995"></a><tt class="py-lineno">2995</tt>  <tt class="py-line"> </tt>
-<a name="L2996"></a><tt class="py-lineno">2996</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-3151" class="py-name"><a title="lxml.etree.PyErrorLog.copy
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3145', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3146" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3146', 'SubElement', 'link-112');">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-3147" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-3147', 'nsmap', 'link-202');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">rs</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">r</tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-3148" 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
-lxml.tests.selftest2.copy" class="py-name" href="#" onclick="return doclink('link-3151', 'copy', 'link-1');">copy</a></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">r</tt><tt class="py-op">.</tt><tt id="link-3152" class="py-name" targets="Method lxml.etree._Attrib.update()=lxml.etree._Attrib-class.html#update,Method lxml.html.Classes.update()=lxml.html.Classes-class.html#update"><a title="lxml.etree._Attrib.update
-lxml.html.Classes.update" class="py-name" href="#" onclick="return doclink('link-3152', 'update', 'link-3152');">update</a></tt><tt class="py-op">(</tt><tt class="py-name">rs</tt><tt class="py-op">)</tt> </tt>
-<a name="L2998"></a><tt class="py-lineno">2998</tt>  <tt class="py-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-3153" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-3153', 'nsmap', 'link-202');">nsmap</a></tt><tt class="py-op">)</tt> </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 class="py-name">r</tt><tt class="py-op">,</tt>  <tt class="py-name">s</tt><tt class="py-op">.</tt><tt id="link-3154" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-3154', 'nsmap', 'link-202');">nsmap</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3000"></a><tt class="py-lineno">3000</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_html_prefix_nsmap"></a><div id="ETreeOnlyTestCase.test_html_prefix_nsmap-def"><a name="L3001"></a><tt class="py-lineno">3001</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="L3002"></a><tt class="py-lineno">3002</tt>  <tt class="py-line">        <tt id="link-3155" class="py-name"><a title="lxml.etree
+lxml.tests.selftest2.copy" class="py-name" href="#" onclick="return doclink('link-3148', 'copy', 'link-1');">copy</a></tt><tt class="py-op">(</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">r</tt><tt class="py-op">.</tt><tt id="link-3149" class="py-name" targets="Method lxml.etree._Attrib.update()=lxml.etree._Attrib-class.html#update,Method lxml.html.Classes.update()=lxml.html.Classes-class.html#update"><a title="lxml.etree._Attrib.update
+lxml.html.Classes.update" class="py-name" href="#" onclick="return doclink('link-3149', 'update', 'link-3149');">update</a></tt><tt class="py-op">(</tt><tt class="py-name">rs</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">re</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-3150" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-3150', 'nsmap', 'link-202');">nsmap</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3012"></a><tt class="py-lineno">3012</tt>  <tt class="py-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-3151" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-3151', 'nsmap', 'link-202');">nsmap</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3013"></a><tt class="py-lineno">3013</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_html_prefix_nsmap"></a><div id="ETreeOnlyTestCase.test_html_prefix_nsmap-def"><a name="L3014"></a><tt class="py-lineno">3014</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="L3015"></a><tt class="py-lineno">3015</tt>  <tt class="py-line">        <tt id="link-3152" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9828,7 +9824,7 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3155', 'etree', 'link-3');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3156" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3152', 'etree', 'link-3');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3153" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9836,8 +9832,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3156', 'etree', 'link-3');">etree</a></tt> </tt>
-<a name="L3003"></a><tt class="py-lineno">3003</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-3157" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3153', 'etree', 'link-3');">etree</a></tt> </tt>
+<a name="L3016"></a><tt class="py-lineno">3016</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-3154" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9845,21 +9841,21 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3157', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3158" class="py-name"><a title="lxml.etree.ErrorDomains.HTML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3154', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3155" 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-3158', 'HTML', 'link-694');">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-3159" 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,Function lxml.tests.selftest.find()=lxml.tests.selftest-module.html#find,Function lxml.tests.selftest2.find()=lxml.tests.selftest2-module.html#find"><a title="lxml.etree._Element.find
+lxml.tests.test_css.HTML" class="py-name" href="#" onclick="return doclink('link-3155', 'HTML', 'link-691');">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-3156" 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,Function lxml.tests.selftest.find()=lxml.tests.selftest-module.html#find,Function lxml.tests.selftest2.find()=lxml.tests.selftest2-module.html#find"><a title="lxml.etree._Element.find
 lxml.etree._ElementTree.find
 lxml.objectify.ObjectPath.find
 lxml.tests.selftest.find
-lxml.tests.selftest2.find" class="py-name" href="#" onclick="return doclink('link-3159', 'find', 'link-3159');">find</a></tt><tt class="py-op">(</tt><tt class="py-string">'.//page-description'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3004"></a><tt class="py-lineno">3004</tt>  <tt class="py-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-3160" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-3160', 'nsmap', 'link-202');">nsmap</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3005"></a><tt class="py-lineno">3005</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_getiterator_filter_multiple"></a><div id="ETreeOnlyTestCase.test_getiterator_filter_multiple-def"><a name="L3006"></a><tt class="py-lineno">3006</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="L3007"></a><tt class="py-lineno">3007</tt>  <tt class="py-line">        <tt id="link-3161" class="py-name"><a title="lxml.etree.Element
+lxml.tests.selftest2.find" class="py-name" href="#" onclick="return doclink('link-3156', 'find', 'link-3156');">find</a></tt><tt class="py-op">(</tt><tt class="py-string">'.//page-description'</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 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-3157" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-3157', 'nsmap', 'link-202');">nsmap</a></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_getiterator_filter_multiple"></a><div id="ETreeOnlyTestCase.test_getiterator_filter_multiple-def"><a name="L3019"></a><tt class="py-lineno">3019</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="L3020"></a><tt class="py-lineno">3020</tt>  <tt class="py-line">        <tt id="link-3158" 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-3161', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3162" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3158', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3159" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9867,11 +9863,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3162', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3163" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3159', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3160" 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-3163', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L3008"></a><tt class="py-lineno">3008</tt>  <tt class="py-line">        <tt id="link-3164" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3164', 'SubElement', 'link-112');">SubElement</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
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3160', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L3021"></a><tt class="py-lineno">3021</tt>  <tt class="py-line">        <tt id="link-3161" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3161', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3162" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9879,44 +9875,44 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3165', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3166" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3166', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
-<a name="L3009"></a><tt class="py-lineno">3009</tt>  <tt class="py-line"> </tt>
-<a name="L3010"></a><tt class="py-lineno">3010</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3167" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3162', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3163" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3163', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
+<a name="L3022"></a><tt class="py-lineno">3022</tt>  <tt class="py-line"> </tt>
+<a name="L3023"></a><tt class="py-lineno">3023</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3164" 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-3167', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'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">b</tt> <tt class="py-op">=</tt> <tt id="link-3168" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3168', 'SubElement', 'link-112');">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="L3012"></a><tt class="py-lineno">3012</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3169" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3169', 'SubElement', 'link-112');">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="L3013"></a><tt class="py-lineno">3013</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-3170" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3170', 'SubElement', 'link-112');">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="L3014"></a><tt class="py-lineno">3014</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-3171" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3171', 'SubElement', 'link-112');">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="L3015"></a><tt class="py-lineno">3015</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-3172" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3172', 'SubElement', 'link-112');">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="L3016"></a><tt class="py-lineno">3016</tt>  <tt class="py-line"> </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>
-<a name="L3018"></a><tt class="py-lineno">3018</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="L3019"></a><tt class="py-lineno">3019</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-3173" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3173', 'getiterator', 'link-1578');">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="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>
-<a name="L3021"></a><tt class="py-lineno">3021</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L3022"></a><tt class="py-lineno">3022</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-3174" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3174', 'getiterator', 'link-1578');">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="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>
-<a name="L3024"></a><tt class="py-lineno">3024</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="L3025"></a><tt class="py-lineno">3025</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-3175" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3175', 'getiterator', 'link-1578');">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="L3026"></a><tt class="py-lineno">3026</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3027"></a><tt class="py-lineno">3027</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="L3028"></a><tt class="py-lineno">3028</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-3176" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3176', 'getiterator', 'link-1578');">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="L3029"></a><tt class="py-lineno">3029</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3030"></a><tt class="py-lineno">3030</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L3031"></a><tt class="py-lineno">3031</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-3177" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3177', 'getiterator', 'link-1578');">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="L3032"></a><tt class="py-lineno">3032</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="L3033"></a><tt class="py-lineno">3033</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="L3034"></a><tt class="py-lineno">3034</tt>  <tt class="py-line">        <tt id="link-3178" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3164', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3024"></a><tt class="py-lineno">3024</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3165" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3165', 'SubElement', 'link-112');">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="L3025"></a><tt class="py-lineno">3025</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3166" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3166', 'SubElement', 'link-112');">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="L3026"></a><tt class="py-lineno">3026</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-3167" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3167', 'SubElement', 'link-112');">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="L3027"></a><tt class="py-lineno">3027</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-3168" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3168', 'SubElement', 'link-112');">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="L3028"></a><tt class="py-lineno">3028</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-3169" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3169', 'SubElement', 'link-112');">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="L3029"></a><tt class="py-lineno">3029</tt>  <tt class="py-line"> </tt>
+<a name="L3030"></a><tt class="py-lineno">3030</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3031"></a><tt class="py-lineno">3031</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="L3032"></a><tt class="py-lineno">3032</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-3170" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3170', 'getiterator', 'link-1575');">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="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>
+<a name="L3034"></a><tt class="py-lineno">3034</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</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">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3171" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3171', 'getiterator', 'link-1575');">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="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>
+<a name="L3037"></a><tt class="py-lineno">3037</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="L3038"></a><tt class="py-lineno">3038</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-3172" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3172', 'getiterator', 'link-1575');">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="L3039"></a><tt class="py-lineno">3039</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3040"></a><tt class="py-lineno">3040</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="L3041"></a><tt class="py-lineno">3041</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-3173" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3173', 'getiterator', 'link-1575');">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="L3042"></a><tt class="py-lineno">3042</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3043"></a><tt class="py-lineno">3043</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</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">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3174" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3174', 'getiterator', 'link-1575');">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="L3045"></a><tt class="py-lineno">3045</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="L3046"></a><tt class="py-lineno">3046</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="L3047"></a><tt class="py-lineno">3047</tt>  <tt class="py-line">        <tt id="link-3175" 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-3178', 'Element', 'link-69');">Element</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
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3175', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3176" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9924,11 +9920,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3179', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3180" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3176', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3177" 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-3180', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L3035"></a><tt class="py-lineno">3035</tt>  <tt class="py-line">        <tt id="link-3181" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3181', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3182" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3177', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L3048"></a><tt class="py-lineno">3048</tt>  <tt class="py-line">        <tt id="link-3178" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3178', 'SubElement', 'link-112');">SubElement</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.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9936,44 +9932,44 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3182', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3183" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3183', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
-<a name="L3036"></a><tt class="py-lineno">3036</tt>  <tt class="py-line"> </tt>
-<a name="L3037"></a><tt class="py-lineno">3037</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3184" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3179', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3180" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3180', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
+<a name="L3049"></a><tt class="py-lineno">3049</tt>  <tt class="py-line"> </tt>
+<a name="L3050"></a><tt class="py-lineno">3050</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3181" 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-3184', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3038"></a><tt class="py-lineno">3038</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3185" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3185', 'SubElement', 'link-112');">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="L3039"></a><tt class="py-lineno">3039</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3186" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3186', 'SubElement', 'link-112');">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="L3040"></a><tt class="py-lineno">3040</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-3187" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3187', 'SubElement', 'link-112');">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="L3041"></a><tt class="py-lineno">3041</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-3188" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3188', 'SubElement', 'link-112');">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="L3042"></a><tt class="py-lineno">3042</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-3189" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3189', 'SubElement', 'link-112');">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="L3043"></a><tt class="py-lineno">3043</tt>  <tt class="py-line"> </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>
-<a name="L3045"></a><tt class="py-lineno">3045</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="L3046"></a><tt class="py-lineno">3046</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-3190" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3190', 'getiterator', 'link-1578');">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="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>
-<a name="L3048"></a><tt class="py-lineno">3048</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L3049"></a><tt class="py-lineno">3049</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-3191" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3191', 'getiterator', 'link-1578');">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="L3050"></a><tt class="py-lineno">3050</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3051"></a><tt class="py-lineno">3051</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="L3052"></a><tt class="py-lineno">3052</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-3192" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3192', 'getiterator', 'link-1578');">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="L3053"></a><tt class="py-lineno">3053</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3054"></a><tt class="py-lineno">3054</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="L3055"></a><tt class="py-lineno">3055</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-3193" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3193', 'getiterator', 'link-1578');">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="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>
-<a name="L3057"></a><tt class="py-lineno">3057</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</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">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3194" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3194', 'getiterator', 'link-1578');">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="L3059"></a><tt class="py-lineno">3059</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_getiterator_filter_namespace"></a><div id="ETreeOnlyTestCase.test_getiterator_filter_namespace-def"><a name="L3060"></a><tt class="py-lineno">3060</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="L3061"></a><tt class="py-lineno">3061</tt>  <tt class="py-line">        <tt id="link-3195" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3181', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3051"></a><tt class="py-lineno">3051</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3182" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3182', 'SubElement', 'link-112');">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="L3052"></a><tt class="py-lineno">3052</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3183" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3183', 'SubElement', 'link-112');">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="L3053"></a><tt class="py-lineno">3053</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-3184" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3184', 'SubElement', 'link-112');">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="L3054"></a><tt class="py-lineno">3054</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-3185" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3185', 'SubElement', 'link-112');">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="L3055"></a><tt class="py-lineno">3055</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-3186" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3186', 'SubElement', 'link-112');">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="L3056"></a><tt class="py-lineno">3056</tt>  <tt class="py-line"> </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>
+<a name="L3058"></a><tt class="py-lineno">3058</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="L3059"></a><tt class="py-lineno">3059</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-3187" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3187', 'getiterator', 'link-1575');">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="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>
+<a name="L3061"></a><tt class="py-lineno">3061</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</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">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3188" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3188', 'getiterator', 'link-1575');">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="L3063"></a><tt class="py-lineno">3063</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3064"></a><tt class="py-lineno">3064</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="L3065"></a><tt class="py-lineno">3065</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-3189" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3189', 'getiterator', 'link-1575');">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="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>
+<a name="L3067"></a><tt class="py-lineno">3067</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="L3068"></a><tt class="py-lineno">3068</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-3190" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3190', 'getiterator', 'link-1575');">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="L3069"></a><tt class="py-lineno">3069</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3070"></a><tt class="py-lineno">3070</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L3071"></a><tt class="py-lineno">3071</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-3191" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3191', 'getiterator', 'link-1575');">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="L3072"></a><tt class="py-lineno">3072</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_getiterator_filter_namespace"></a><div id="ETreeOnlyTestCase.test_getiterator_filter_namespace-def"><a name="L3073"></a><tt class="py-lineno">3073</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="L3074"></a><tt class="py-lineno">3074</tt>  <tt class="py-line">        <tt id="link-3192" 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-3195', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3196" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3192', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3193" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9981,11 +9977,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3196', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3197" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3193', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3194" 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-3197', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L3062"></a><tt class="py-lineno">3062</tt>  <tt class="py-line">        <tt id="link-3198" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3198', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3199" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3194', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L3075"></a><tt class="py-lineno">3075</tt>  <tt class="py-line">        <tt id="link-3195" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3195', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3196" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -9993,61 +9989,61 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3199', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3200" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3200', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
-<a name="L3063"></a><tt class="py-lineno">3063</tt>  <tt class="py-line"> </tt>
-<a name="L3064"></a><tt class="py-lineno">3064</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3201" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3196', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3197" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3197', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
+<a name="L3076"></a><tt class="py-lineno">3076</tt>  <tt class="py-line"> </tt>
+<a name="L3077"></a><tt class="py-lineno">3077</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3198" 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-3201', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{a}a'</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">b</tt> <tt class="py-op">=</tt> <tt id="link-3202" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3202', 'SubElement', 'link-112');">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="L3066"></a><tt class="py-lineno">3066</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3203" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3203', 'SubElement', 'link-112');">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="L3067"></a><tt class="py-lineno">3067</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-3204" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3204', 'SubElement', 'link-112');">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="L3068"></a><tt class="py-lineno">3068</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-3205" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3205', 'SubElement', 'link-112');">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="L3069"></a><tt class="py-lineno">3069</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-3206" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3206', 'SubElement', 'link-112');">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="L3070"></a><tt class="py-lineno">3070</tt>  <tt class="py-line">        <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt id="link-3207" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3207', 'SubElement', 'link-112');">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="L3071"></a><tt class="py-lineno">3071</tt>  <tt class="py-line"> </tt>
-<a name="L3072"></a><tt class="py-lineno">3072</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3073"></a><tt class="py-lineno">3073</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="L3074"></a><tt class="py-lineno">3074</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-3208" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3208', 'getiterator', 'link-1578');">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="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>
-<a name="L3076"></a><tt class="py-lineno">3076</tt>  <tt class="py-line">            <tt class="py-op">[</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 class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3209" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3209', 'getiterator', 'link-1578');">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="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>
-<a name="L3079"></a><tt class="py-lineno">3079</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L3080"></a><tt class="py-lineno">3080</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-3210" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3210', 'getiterator', 'link-1578');">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="L3081"></a><tt class="py-lineno">3081</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3082"></a><tt class="py-lineno">3082</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="L3083"></a><tt class="py-lineno">3083</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-3211" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3211', 'getiterator', 'link-1578');">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="L3084"></a><tt class="py-lineno">3084</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3085"></a><tt class="py-lineno">3085</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="L3086"></a><tt class="py-lineno">3086</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-3212" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3212', 'getiterator', 'link-1578');">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="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 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="L3089"></a><tt class="py-lineno">3089</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-3213" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3213', 'getiterator', 'link-1578');">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="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>
-<a name="L3091"></a><tt class="py-lineno">3091</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="L3092"></a><tt class="py-lineno">3092</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-3214" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3214', 'getiterator', 'link-1578');">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="L3093"></a><tt class="py-lineno">3093</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3094"></a><tt class="py-lineno">3094</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="L3095"></a><tt class="py-lineno">3095</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-3215" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3215', 'getiterator', 'link-1578');">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="L3096"></a><tt class="py-lineno">3096</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3097"></a><tt class="py-lineno">3097</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="L3098"></a><tt class="py-lineno">3098</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-3216" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3216', 'getiterator', 'link-1578');">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="L3099"></a><tt class="py-lineno">3099</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="L3100"></a><tt class="py-lineno">3100</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="L3101"></a><tt class="py-lineno">3101</tt>  <tt class="py-line">        <tt id="link-3217" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3198', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{a}a'</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">b</tt> <tt class="py-op">=</tt> <tt id="link-3199" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3199', 'SubElement', 'link-112');">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="L3079"></a><tt class="py-lineno">3079</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3200" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3200', 'SubElement', 'link-112');">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="L3080"></a><tt class="py-lineno">3080</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-3201" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3201', 'SubElement', 'link-112');">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="L3081"></a><tt class="py-lineno">3081</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-3202" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3202', 'SubElement', 'link-112');">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="L3082"></a><tt class="py-lineno">3082</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-3203" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3203', 'SubElement', 'link-112');">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="L3083"></a><tt class="py-lineno">3083</tt>  <tt class="py-line">        <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt id="link-3204" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3204', 'SubElement', 'link-112');">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="L3084"></a><tt class="py-lineno">3084</tt>  <tt class="py-line"> </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>
+<a name="L3086"></a><tt class="py-lineno">3086</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="L3087"></a><tt class="py-lineno">3087</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-3205" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3205', 'getiterator', 'link-1575');">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="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>
+<a name="L3089"></a><tt class="py-lineno">3089</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</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">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3206" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3206', 'getiterator', 'link-1575');">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="L3091"></a><tt class="py-lineno">3091</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3092"></a><tt class="py-lineno">3092</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L3093"></a><tt class="py-lineno">3093</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-3207" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3207', 'getiterator', 'link-1575');">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="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>
+<a name="L3095"></a><tt class="py-lineno">3095</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="L3096"></a><tt class="py-lineno">3096</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-3208" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3208', 'getiterator', 'link-1575');">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="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>
+<a name="L3098"></a><tt class="py-lineno">3098</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="L3099"></a><tt class="py-lineno">3099</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-3209" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3209', 'getiterator', 'link-1575');">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="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 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="L3102"></a><tt class="py-lineno">3102</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-3210" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3210', 'getiterator', 'link-1575');">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="L3103"></a><tt class="py-lineno">3103</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3104"></a><tt class="py-lineno">3104</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="L3105"></a><tt class="py-lineno">3105</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-3211" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3211', 'getiterator', 'link-1575');">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="L3106"></a><tt class="py-lineno">3106</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3107"></a><tt class="py-lineno">3107</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="L3108"></a><tt class="py-lineno">3108</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-3212" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3212', 'getiterator', 'link-1575');">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="L3109"></a><tt class="py-lineno">3109</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3110"></a><tt class="py-lineno">3110</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="L3111"></a><tt class="py-lineno">3111</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-3213" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3213', 'getiterator', 'link-1575');">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="L3112"></a><tt class="py-lineno">3112</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="L3113"></a><tt class="py-lineno">3113</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="L3114"></a><tt class="py-lineno">3114</tt>  <tt class="py-line">        <tt id="link-3214" 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-3217', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3218" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3214', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3215" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -10055,11 +10051,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3218', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3219" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3215', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3216" 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-3219', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L3102"></a><tt class="py-lineno">3102</tt>  <tt class="py-line">        <tt id="link-3220" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-3220', 'Comment', 'link-523');">Comment</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
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3216', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L3115"></a><tt class="py-lineno">3115</tt>  <tt class="py-line">        <tt id="link-3217" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-3217', 'Comment', 'link-520');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3218" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -10067,8 +10063,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3221', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3222" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-3222', 'Comment', 'link-523');">Comment</a></tt> </tt>
-<a name="L3103"></a><tt class="py-lineno">3103</tt>  <tt class="py-line">        <tt id="link-3223" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3223', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3224" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3218', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3219" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-3219', 'Comment', 'link-520');">Comment</a></tt> </tt>
+<a name="L3116"></a><tt class="py-lineno">3116</tt>  <tt class="py-line">        <tt id="link-3220" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3220', 'SubElement', 'link-112');">SubElement</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.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -10076,38 +10072,38 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3224', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3225" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3225', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
-<a name="L3104"></a><tt class="py-lineno">3104</tt>  <tt class="py-line"> </tt>
-<a name="L3105"></a><tt class="py-lineno">3105</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3226" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3221', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3222" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3222', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
+<a name="L3117"></a><tt class="py-lineno">3117</tt>  <tt class="py-line"> </tt>
+<a name="L3118"></a><tt class="py-lineno">3118</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3223" 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-3226', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{a}a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3106"></a><tt class="py-lineno">3106</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3227" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3227', 'SubElement', 'link-112');">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="L3107"></a><tt class="py-lineno">3107</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3228" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3228', 'SubElement', 'link-112');">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="L3108"></a><tt class="py-lineno">3108</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-3229" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3229', 'SubElement', 'link-112');">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="L3109"></a><tt class="py-lineno">3109</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-3230" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3230', 'SubElement', 'link-112');">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="L3110"></a><tt class="py-lineno">3110</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-3231" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3231', 'SubElement', 'link-112');">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="L3111"></a><tt class="py-lineno">3111</tt>  <tt class="py-line">        <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt id="link-3232" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3232', 'SubElement', 'link-112');">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="L3112"></a><tt class="py-lineno">3112</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3233" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3233', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt id="link-3234" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-3234', 'Comment', 'link-523');">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="L3113"></a><tt class="py-lineno">3113</tt>  <tt class="py-line"> </tt>
-<a name="L3114"></a><tt class="py-lineno">3114</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3115"></a><tt class="py-lineno">3115</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="L3116"></a><tt class="py-lineno">3116</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-3235" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3235', 'getiterator', 'link-1578');">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="L3117"></a><tt class="py-lineno">3117</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3118"></a><tt class="py-lineno">3118</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="L3119"></a><tt class="py-lineno">3119</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-3236" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3236', 'getiterator', 'link-1578');">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="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">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3121"></a><tt class="py-lineno">3121</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="L3122"></a><tt class="py-lineno">3122</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-3237" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3237', 'getiterator', 'link-1578');">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="L3123"></a><tt class="py-lineno">3123</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_getiterator_filter_entities"></a><div id="ETreeOnlyTestCase.test_getiterator_filter_entities-def"><a name="L3124"></a><tt class="py-lineno">3124</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="L3125"></a><tt class="py-lineno">3125</tt>  <tt class="py-line">        <tt id="link-3238" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3223', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{a}a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3119"></a><tt class="py-lineno">3119</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3224" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3224', 'SubElement', 'link-112');">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="L3120"></a><tt class="py-lineno">3120</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3225" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3225', 'SubElement', 'link-112');">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="L3121"></a><tt class="py-lineno">3121</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-3226" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3226', 'SubElement', 'link-112');">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="L3122"></a><tt class="py-lineno">3122</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-3227" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3227', 'SubElement', 'link-112');">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="L3123"></a><tt class="py-lineno">3123</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-3228" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3228', 'SubElement', 'link-112');">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="L3124"></a><tt class="py-lineno">3124</tt>  <tt class="py-line">        <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt id="link-3229" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3229', 'SubElement', 'link-112');">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="L3125"></a><tt class="py-lineno">3125</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3230" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3230', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt id="link-3231" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-3231', 'Comment', 'link-520');">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="L3126"></a><tt class="py-lineno">3126</tt>  <tt class="py-line"> </tt>
+<a name="L3127"></a><tt class="py-lineno">3127</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3128"></a><tt class="py-lineno">3128</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="L3129"></a><tt class="py-lineno">3129</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-3232" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3232', 'getiterator', 'link-1575');">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="L3130"></a><tt class="py-lineno">3130</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3131"></a><tt class="py-lineno">3131</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="L3132"></a><tt class="py-lineno">3132</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-3233" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3233', 'getiterator', 'link-1575');">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="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>
+<a name="L3134"></a><tt class="py-lineno">3134</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="L3135"></a><tt class="py-lineno">3135</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-3234" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3234', 'getiterator', 'link-1575');">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="L3136"></a><tt class="py-lineno">3136</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_getiterator_filter_entities"></a><div id="ETreeOnlyTestCase.test_getiterator_filter_entities-def"><a name="L3137"></a><tt class="py-lineno">3137</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="L3138"></a><tt class="py-lineno">3138</tt>  <tt class="py-line">        <tt id="link-3235" 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-3238', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3239" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3235', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3236" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -10115,11 +10111,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3239', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3240" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3236', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3237" 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-3240', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L3126"></a><tt class="py-lineno">3126</tt>  <tt class="py-line">        <tt id="link-3241" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-3241', 'Entity', 'link-1757');">Entity</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3242" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3237', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L3139"></a><tt class="py-lineno">3139</tt>  <tt class="py-line">        <tt id="link-3238" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-3238', 'Entity', 'link-1754');">Entity</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3239" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -10127,8 +10123,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3242', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3243" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-3243', 'Entity', 'link-1757');">Entity</a></tt> </tt>
-<a name="L3127"></a><tt class="py-lineno">3127</tt>  <tt class="py-line">        <tt id="link-3244" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3244', 'SubElement', 'link-112');">SubElement</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.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3239', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3240" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-3240', 'Entity', 'link-1754');">Entity</a></tt> </tt>
+<a name="L3140"></a><tt class="py-lineno">3140</tt>  <tt class="py-line">        <tt id="link-3241" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3241', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3242" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -10136,39 +10132,39 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3245', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3246" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3246', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
-<a name="L3128"></a><tt class="py-lineno">3128</tt>  <tt class="py-line"> </tt>
-<a name="L3129"></a><tt class="py-lineno">3129</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3247" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3242', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3243" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3243', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
+<a name="L3141"></a><tt class="py-lineno">3141</tt>  <tt class="py-line"> </tt>
+<a name="L3142"></a><tt class="py-lineno">3142</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3244" 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-3247', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3130"></a><tt class="py-lineno">3130</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3248" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3248', 'SubElement', 'link-112');">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="L3131"></a><tt class="py-lineno">3131</tt>  <tt class="py-line">        <tt class="py-name">entity_b</tt> <tt class="py-op">=</tt> <tt id="link-3249" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-3249', 'Entity', 'link-1757');">Entity</a></tt><tt class="py-op">(</tt><tt class="py-string">"TEST-b"</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">b</tt><tt class="py-op">.</tt><tt id="link-3250" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3250', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">entity_b</tt><tt class="py-op">)</tt> </tt>
-<a name="L3133"></a><tt class="py-lineno">3133</tt>  <tt class="py-line"> </tt>
-<a name="L3134"></a><tt class="py-lineno">3134</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3135"></a><tt class="py-lineno">3135</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="L3136"></a><tt class="py-lineno">3136</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-3251" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3251', 'getiterator', 'link-1578');">getiterator</a></tt><tt class="py-op">(</tt><tt id="link-3252" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-3252', 'Entity', 'link-1757');">Entity</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3137"></a><tt class="py-lineno">3137</tt>  <tt class="py-line"> </tt>
-<a name="L3138"></a><tt class="py-lineno">3138</tt>  <tt class="py-line">        <tt class="py-name">entity_a</tt> <tt class="py-op">=</tt> <tt id="link-3253" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-3253', 'Entity', 'link-1757');">Entity</a></tt><tt class="py-op">(</tt><tt class="py-string">"TEST-a"</tt><tt class="py-op">)</tt> </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-3254" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3254', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">entity_a</tt><tt class="py-op">)</tt> </tt>
-<a name="L3140"></a><tt class="py-lineno">3140</tt>  <tt class="py-line"> </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>
-<a name="L3142"></a><tt class="py-lineno">3142</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="L3143"></a><tt class="py-lineno">3143</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-3255" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3255', 'getiterator', 'link-1578');">getiterator</a></tt><tt class="py-op">(</tt><tt id="link-3256" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-3256', 'Entity', 'link-1757');">Entity</a></tt><tt class="py-op">)</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>
-<a name="L3145"></a><tt class="py-lineno">3145</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3146"></a><tt class="py-lineno">3146</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="L3147"></a><tt class="py-lineno">3147</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-3257" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3257', 'getiterator', 'link-1578');">getiterator</a></tt><tt class="py-op">(</tt><tt id="link-3258" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-3258', 'Entity', 'link-1757');">Entity</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3148"></a><tt class="py-lineno">3148</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_getiterator_filter_element"></a><div id="ETreeOnlyTestCase.test_getiterator_filter_element-def"><a name="L3149"></a><tt class="py-lineno">3149</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="L3150"></a><tt class="py-lineno">3150</tt>  <tt class="py-line">        <tt id="link-3259" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3244', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3143"></a><tt class="py-lineno">3143</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3245" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3245', 'SubElement', 'link-112');">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="L3144"></a><tt class="py-lineno">3144</tt>  <tt class="py-line">        <tt class="py-name">entity_b</tt> <tt class="py-op">=</tt> <tt id="link-3246" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-3246', 'Entity', 'link-1754');">Entity</a></tt><tt class="py-op">(</tt><tt class="py-string">"TEST-b"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3145"></a><tt class="py-lineno">3145</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3247" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3247', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">entity_b</tt><tt class="py-op">)</tt> </tt>
+<a name="L3146"></a><tt class="py-lineno">3146</tt>  <tt class="py-line"> </tt>
+<a name="L3147"></a><tt class="py-lineno">3147</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3148"></a><tt class="py-lineno">3148</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="L3149"></a><tt class="py-lineno">3149</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-3248" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3248', 'getiterator', 'link-1575');">getiterator</a></tt><tt class="py-op">(</tt><tt id="link-3249" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-3249', 'Entity', 'link-1754');">Entity</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3150"></a><tt class="py-lineno">3150</tt>  <tt class="py-line"> </tt>
+<a name="L3151"></a><tt class="py-lineno">3151</tt>  <tt class="py-line">        <tt class="py-name">entity_a</tt> <tt class="py-op">=</tt> <tt id="link-3250" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-3250', 'Entity', 'link-1754');">Entity</a></tt><tt class="py-op">(</tt><tt class="py-string">"TEST-a"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3152"></a><tt class="py-lineno">3152</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3251" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3251', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">entity_a</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">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3155"></a><tt class="py-lineno">3155</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="L3156"></a><tt class="py-lineno">3156</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-3252" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3252', 'getiterator', 'link-1575');">getiterator</a></tt><tt class="py-op">(</tt><tt id="link-3253" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-3253', 'Entity', 'link-1754');">Entity</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3157"></a><tt class="py-lineno">3157</tt>  <tt class="py-line"> </tt>
+<a name="L3158"></a><tt class="py-lineno">3158</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3159"></a><tt class="py-lineno">3159</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="L3160"></a><tt class="py-lineno">3160</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-3254" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3254', 'getiterator', 'link-1575');">getiterator</a></tt><tt class="py-op">(</tt><tt id="link-3255" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-3255', 'Entity', 'link-1754');">Entity</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3161"></a><tt class="py-lineno">3161</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_getiterator_filter_element"></a><div id="ETreeOnlyTestCase.test_getiterator_filter_element-def"><a name="L3162"></a><tt class="py-lineno">3162</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="L3163"></a><tt class="py-lineno">3163</tt>  <tt class="py-line">        <tt id="link-3256" 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-3259', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3260" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3256', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3257" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -10176,11 +10172,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3260', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3261" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3257', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3258" 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-3261', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L3151"></a><tt class="py-lineno">3151</tt>  <tt class="py-line">        <tt id="link-3262" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-3262', 'Comment', 'link-523');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3263" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3258', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L3164"></a><tt class="py-lineno">3164</tt>  <tt class="py-line">        <tt id="link-3259" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-3259', 'Comment', 'link-520');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3260" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -10188,8 +10184,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3263', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3264" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-3264', 'Comment', 'link-523');">Comment</a></tt> </tt>
-<a name="L3152"></a><tt class="py-lineno">3152</tt>  <tt class="py-line">        <tt id="link-3265" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-3265', 'PI', 'link-521');">PI</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3266" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3260', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3261" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-3261', 'Comment', 'link-520');">Comment</a></tt> </tt>
+<a name="L3165"></a><tt class="py-lineno">3165</tt>  <tt class="py-line">        <tt id="link-3262" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-3262', 'PI', 'link-518');">PI</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3263" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -10197,8 +10193,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3266', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3267" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-3267', 'PI', 'link-521');">PI</a></tt> </tt>
-<a name="L3153"></a><tt class="py-lineno">3153</tt>  <tt class="py-line">        <tt id="link-3268" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3268', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3269" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3263', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3264" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-3264', 'PI', 'link-518');">PI</a></tt> </tt>
+<a name="L3166"></a><tt class="py-lineno">3166</tt>  <tt class="py-line">        <tt id="link-3265" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3265', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3266" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -10206,31 +10202,31 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3269', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3270" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3270', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
-<a name="L3154"></a><tt class="py-lineno">3154</tt>  <tt class="py-line"> </tt>
-<a name="L3155"></a><tt class="py-lineno">3155</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3271" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3266', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3267" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3267', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
+<a name="L3167"></a><tt class="py-lineno">3167</tt>  <tt class="py-line"> </tt>
+<a name="L3168"></a><tt class="py-lineno">3168</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3268" 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-3271', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3156"></a><tt class="py-lineno">3156</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3272" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3272', 'SubElement', 'link-112');">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="L3157"></a><tt class="py-lineno">3157</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3273" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3273', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt id="link-3274" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-3274', 'Comment', 'link-523');">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="L3158"></a><tt class="py-lineno">3158</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3275" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3275', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt id="link-3276" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-3276', 'PI', 'link-521');">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="L3159"></a><tt class="py-lineno">3159</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3277" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3277', 'SubElement', 'link-112');">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="L3160"></a><tt class="py-lineno">3160</tt>  <tt class="py-line"> </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">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3162"></a><tt class="py-lineno">3162</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="L3163"></a><tt class="py-lineno">3163</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-3278" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3278', 'getiterator', 'link-1578');">getiterator</a></tt><tt class="py-op">(</tt><tt id="link-3279" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3268', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3169"></a><tt class="py-lineno">3169</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3269" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3269', 'SubElement', 'link-112');">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="L3170"></a><tt class="py-lineno">3170</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.append" class="py-name" href="#" onclick="return doclink('link-3270', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt id="link-3271" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-3271', 'Comment', 'link-520');">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="L3171"></a><tt class="py-lineno">3171</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3272" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3272', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt id="link-3273" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-3273', 'PI', 'link-518');">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="L3172"></a><tt class="py-lineno">3172</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3274" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3274', 'SubElement', 'link-112');">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="L3173"></a><tt class="py-lineno">3173</tt>  <tt class="py-line"> </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">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3175"></a><tt class="py-lineno">3175</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="L3176"></a><tt class="py-lineno">3176</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-3275" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3275', 'getiterator', 'link-1575');">getiterator</a></tt><tt class="py-op">(</tt><tt id="link-3276" 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-69');">Element</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3164"></a><tt class="py-lineno">3164</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="L3165"></a><tt class="py-lineno">3165</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="L3166"></a><tt class="py-lineno">3166</tt>  <tt class="py-line">        <tt class="py-comment"># ElementTree iterates over everything here</tt> </tt>
-<a name="L3167"></a><tt class="py-lineno">3167</tt>  <tt class="py-line">        <tt id="link-3280" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3276', 'Element', 'link-69');">Element</a></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_getiterator_filter_all_comment_pi"></a><div id="ETreeOnlyTestCase.test_getiterator_filter_all_comment_pi-def"><a name="L3178"></a><tt class="py-lineno">3178</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="L3179"></a><tt class="py-lineno">3179</tt>  <tt class="py-line">        <tt class="py-comment"># ElementTree iterates over everything here</tt> </tt>
+<a name="L3180"></a><tt class="py-lineno">3180</tt>  <tt class="py-line">        <tt id="link-3277" 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-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3281" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3277', 'Element', 'link-69');">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
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -10238,11 +10234,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3281', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3282" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3278', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3279" 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-3282', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L3168"></a><tt class="py-lineno">3168</tt>  <tt class="py-line">        <tt id="link-3283" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-3283', 'Comment', 'link-523');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3284" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3279', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L3181"></a><tt class="py-lineno">3181</tt>  <tt class="py-line">        <tt id="link-3280" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-3280', 'Comment', 'link-520');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</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.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -10250,8 +10246,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3284', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3285" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-3285', 'Comment', 'link-523');">Comment</a></tt> </tt>
-<a name="L3169"></a><tt class="py-lineno">3169</tt>  <tt class="py-line">        <tt id="link-3286" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-3286', 'PI', 'link-521');">PI</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3287" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3281', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3282" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-3282', 'Comment', 'link-520');">Comment</a></tt> </tt>
+<a name="L3182"></a><tt class="py-lineno">3182</tt>  <tt class="py-line">        <tt id="link-3283" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-3283', 'PI', 'link-518');">PI</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3284" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -10259,8 +10255,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3287', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3288" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-3288', 'PI', 'link-521');">PI</a></tt> </tt>
-<a name="L3170"></a><tt class="py-lineno">3170</tt>  <tt class="py-line">        <tt id="link-3289" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3289', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3290" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3284', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3285" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-3285', 'PI', 'link-518');">PI</a></tt> </tt>
+<a name="L3183"></a><tt class="py-lineno">3183</tt>  <tt class="py-line">        <tt id="link-3286" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3286', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3287" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -10268,24 +10264,24 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3290', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3291" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3291', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
-<a name="L3171"></a><tt class="py-lineno">3171</tt>  <tt class="py-line"> </tt>
-<a name="L3172"></a><tt class="py-lineno">3172</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3292" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3287', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3288" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3288', 'SubElement', 'link-112');">SubElement</a></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">a</tt> <tt class="py-op">=</tt> <tt id="link-3289" 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-3292', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3173"></a><tt class="py-lineno">3173</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3293" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3293', 'SubElement', 'link-112');">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="L3174"></a><tt class="py-lineno">3174</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3294" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3294', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt id="link-3295" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-3295', 'Comment', 'link-523');">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="L3175"></a><tt class="py-lineno">3175</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3296" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3296', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt id="link-3297" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-3297', 'PI', 'link-521');">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="L3176"></a><tt class="py-lineno">3176</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3298" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3298', 'SubElement', 'link-112');">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="L3177"></a><tt class="py-lineno">3177</tt>  <tt class="py-line"> </tt>
-<a name="L3178"></a><tt class="py-lineno">3178</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3179"></a><tt class="py-lineno">3179</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="L3180"></a><tt class="py-lineno">3180</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-3299" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3299', 'getiterator', 'link-1578');">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="L3181"></a><tt class="py-lineno">3181</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_elementtree_getelementpath"></a><div id="ETreeOnlyTestCase.test_elementtree_getelementpath-def"><a name="L3182"></a><tt class="py-lineno">3182</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_elementtree_getelementpath-toggle" onclick="return toggle('ETreeOnlyTestCase.test_elementtree_getelementpath');">-</a><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_getelementpath">test_elementtree_getelementpath</a><tt class="py-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_getelementpath-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_elementtree_getelementpath-expanded"><a name="L3183"></a><tt class="py-lineno">3183</tt>  <tt class="py-line">        <tt class="py-name">a</tt>  <tt class="py-op">=</tt> <tt id="link-3300" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3289', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</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">b</tt> <tt class="py-op">=</tt> <tt id="link-3290" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3290', 'SubElement', 'link-112');">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="L3187"></a><tt class="py-lineno">3187</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3291" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3291', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt id="link-3292" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-3292', 'Comment', 'link-520');">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="L3188"></a><tt class="py-lineno">3188</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3293" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3293', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt id="link-3294" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-3294', 'PI', 'link-518');">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="L3189"></a><tt class="py-lineno">3189</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3295" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3295', 'SubElement', 'link-112');">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="L3190"></a><tt class="py-lineno">3190</tt>  <tt class="py-line"> </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">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3192"></a><tt class="py-lineno">3192</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="L3193"></a><tt class="py-lineno">3193</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-3296" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3296', 'getiterator', 'link-1575');">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="L3194"></a><tt class="py-lineno">3194</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_elementtree_getelementpath"></a><div id="ETreeOnlyTestCase.test_elementtree_getelementpath-def"><a name="L3195"></a><tt class="py-lineno">3195</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_elementtree_getelementpath-toggle" onclick="return toggle('ETreeOnlyTestCase.test_elementtree_getelementpath');">-</a><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_getelementpath">test_elementtree_getelementpath</a><tt class="py-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_getelementpath-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_elementtree_getelementpath-expanded"><a name="L3196"></a><tt class="py-lineno">3196</tt>  <tt class="py-line">        <tt class="py-name">a</tt>  <tt class="py-op">=</tt> <tt id="link-3297" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -10293,11 +10289,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3300', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3301" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3297', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3298" 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-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"a"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3184"></a><tt class="py-lineno">3184</tt>  <tt class="py-line">        <tt class="py-name">b</tt>  <tt class="py-op">=</tt> <tt id="link-3302" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3298', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"a"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3197"></a><tt class="py-lineno">3197</tt>  <tt class="py-line">        <tt class="py-name">b</tt>  <tt class="py-op">=</tt> <tt id="link-3299" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -10305,8 +10301,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3302', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3303" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3303', 'SubElement', 'link-112');">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="L3185"></a><tt class="py-lineno">3185</tt>  <tt class="py-line">        <tt class="py-name">c</tt>  <tt class="py-op">=</tt> <tt id="link-3304" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3299', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3300" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3300', 'SubElement', 'link-112');">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="L3198"></a><tt class="py-lineno">3198</tt>  <tt class="py-line">        <tt class="py-name">c</tt>  <tt class="py-op">=</tt> <tt id="link-3301" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -10314,8 +10310,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3304', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3305" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3305', 'SubElement', 'link-112');">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="L3186"></a><tt class="py-lineno">3186</tt>  <tt class="py-line">        <tt class="py-name">d1</tt> <tt class="py-op">=</tt> <tt id="link-3306" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3301', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3302" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3302', 'SubElement', 'link-112');">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="L3199"></a><tt class="py-lineno">3199</tt>  <tt class="py-line">        <tt class="py-name">d1</tt> <tt class="py-op">=</tt> <tt id="link-3303" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -10323,8 +10319,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3306', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3307" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3307', 'SubElement', 'link-112');">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="L3187"></a><tt class="py-lineno">3187</tt>  <tt class="py-line">        <tt class="py-name">d2</tt> <tt class="py-op">=</tt> <tt id="link-3308" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3303', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3304" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3304', 'SubElement', 'link-112');">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="L3200"></a><tt class="py-lineno">3200</tt>  <tt class="py-line">        <tt class="py-name">d2</tt> <tt class="py-op">=</tt> <tt id="link-3305" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -10332,18 +10328,18 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3308', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3309" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3309', 'SubElement', 'link-112');">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="L3188"></a><tt class="py-lineno">3188</tt>  <tt class="py-line">        <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-3310" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3305', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3306" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3306', 'SubElement', 'link-112');">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="L3201"></a><tt class="py-lineno">3201</tt>  <tt class="py-line">        <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-3307" 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-3310', 'text', 'link-205');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-name">d1</tt><tt class="py-op">.</tt><tt id="link-3311" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3307', 'text', 'link-205');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-name">d1</tt><tt class="py-op">.</tt><tt id="link-3308" 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-3311', 'text', 'link-205');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'TEXT'</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">tree</tt> <tt class="py-op">=</tt> <tt id="link-3312" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3308', 'text', 'link-205');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'TEXT'</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">tree</tt> <tt class="py-op">=</tt> <tt id="link-3309" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -10351,25 +10347,25 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3312', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3313" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3309', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3310" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3313', 'ElementTree', 'link-573');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">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">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'.'</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3314" class="py-name" targets="Method lxml.etree._ElementTree.getelementpath()=lxml.etree._ElementTree-class.html#getelementpath"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3314', 'getelementpath', 'link-3314');">getelementpath</a></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="L3192"></a><tt class="py-lineno">3192</tt>  <tt class="py-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">'c/d[1]'</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3315" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3315', 'getelementpath', 'link-3314');">getelementpath</a></tt><tt class="py-op">(</tt><tt class="py-name">d1</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">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'c/d[2]'</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3316" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3316', 'getelementpath', 'link-3314');">getelementpath</a></tt><tt class="py-op">(</tt><tt class="py-name">d2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3194"></a><tt class="py-lineno">3194</tt>  <tt class="py-line"> </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">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">d1</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3317" class="py-name"><a title="lxml.etree._Element.find
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3310', 'ElementTree', 'link-570');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">a</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">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'.'</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3311" class="py-name" targets="Method lxml.etree._ElementTree.getelementpath()=lxml.etree._ElementTree-class.html#getelementpath"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3311', 'getelementpath', 'link-3311');">getelementpath</a></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="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">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'c/d[1]'</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3312" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3312', 'getelementpath', 'link-3311');">getelementpath</a></tt><tt class="py-op">(</tt><tt class="py-name">d1</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </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">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'c/d[2]'</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3313" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3313', 'getelementpath', 'link-3311');">getelementpath</a></tt><tt class="py-op">(</tt><tt class="py-name">d2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3207"></a><tt class="py-lineno">3207</tt>  <tt class="py-line"> </tt>
+<a name="L3208"></a><tt class="py-lineno">3208</tt>  <tt class="py-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">d1</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3314" class="py-name"><a title="lxml.etree._Element.find
 lxml.etree._ElementTree.find
 lxml.objectify.ObjectPath.find
 lxml.tests.selftest.find
-lxml.tests.selftest2.find" class="py-name" href="#" onclick="return doclink('link-3317', 'find', 'link-3159');">find</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3318" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3318', 'getelementpath', 'link-3314');">getelementpath</a></tt><tt class="py-op">(</tt><tt class="py-name">d1</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </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">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">d2</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3319" class="py-name"><a title="lxml.etree._Element.find
+lxml.tests.selftest2.find" class="py-name" href="#" onclick="return doclink('link-3314', 'find', 'link-3156');">find</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3315" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3315', 'getelementpath', 'link-3311');">getelementpath</a></tt><tt class="py-op">(</tt><tt class="py-name">d1</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </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">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">d2</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3316" class="py-name"><a title="lxml.etree._Element.find
 lxml.etree._ElementTree.find
 lxml.objectify.ObjectPath.find
 lxml.tests.selftest.find
-lxml.tests.selftest2.find" class="py-name" href="#" onclick="return doclink('link-3319', 'find', 'link-3159');">find</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3320" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3320', 'getelementpath', 'link-3314');">getelementpath</a></tt><tt class="py-op">(</tt><tt class="py-name">d2</tt><tt class="py-op">)</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">tree</tt> <tt class="py-op">=</tt> <tt id="link-3321" class="py-name"><a title="lxml.etree
+lxml.tests.selftest2.find" class="py-name" href="#" onclick="return doclink('link-3316', 'find', 'link-3156');">find</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3317" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3317', 'getelementpath', 'link-3311');">getelementpath</a></tt><tt class="py-op">(</tt><tt class="py-name">d2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3210"></a><tt class="py-lineno">3210</tt>  <tt class="py-line"> </tt>
+<a name="L3211"></a><tt class="py-lineno">3211</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3318" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -10377,18 +10373,18 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3321', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3322" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3318', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3319" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3322', 'ElementTree', 'link-573');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
-<a name="L3199"></a><tt class="py-lineno">3199</tt>  <tt class="py-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">'.'</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3323" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3323', 'getelementpath', 'link-3314');">getelementpath</a></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="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">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'d[2]'</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3324" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3324', 'getelementpath', 'link-3314');">getelementpath</a></tt><tt class="py-op">(</tt><tt class="py-name">d2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3201"></a><tt class="py-lineno">3201</tt>  <tt class="py-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">d2</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3325" class="py-name"><a title="lxml.etree._Element.find
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3319', 'ElementTree', 'link-570');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
+<a name="L3212"></a><tt class="py-lineno">3212</tt>  <tt class="py-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">'.'</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3320" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3320', 'getelementpath', 'link-3311');">getelementpath</a></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="L3213"></a><tt class="py-lineno">3213</tt>  <tt class="py-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">'d[2]'</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3321" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3321', 'getelementpath', 'link-3311');">getelementpath</a></tt><tt class="py-op">(</tt><tt class="py-name">d2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3214"></a><tt class="py-lineno">3214</tt>  <tt class="py-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">d2</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3322" class="py-name"><a title="lxml.etree._Element.find
 lxml.etree._ElementTree.find
 lxml.objectify.ObjectPath.find
 lxml.tests.selftest.find
-lxml.tests.selftest2.find" class="py-name" href="#" onclick="return doclink('link-3325', 'find', 'link-3159');">find</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3326" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3326', 'getelementpath', 'link-3314');">getelementpath</a></tt><tt class="py-op">(</tt><tt class="py-name">d2</tt><tt class="py-op">)</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">tree</tt> <tt class="py-op">=</tt> <tt id="link-3327" class="py-name"><a title="lxml.etree
+lxml.tests.selftest2.find" class="py-name" href="#" onclick="return doclink('link-3322', 'find', 'link-3156');">find</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3323" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3323', 'getelementpath', 'link-3311');">getelementpath</a></tt><tt class="py-op">(</tt><tt class="py-name">d2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3215"></a><tt class="py-lineno">3215</tt>  <tt class="py-line"> </tt>
+<a name="L3216"></a><tt class="py-lineno">3216</tt>  <tt class="py-line">        <tt class="py-name">tree</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.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -10396,16 +10392,16 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3327', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3328" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3324', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3325" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3328', 'ElementTree', 'link-573');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt>  <tt class="py-comment"># not a parent of a/c/d1/d2</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">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'.'</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3329" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3329', 'getelementpath', 'link-3314');">getelementpath</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="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 class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3330" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3330', 'getelementpath', 'link-3314');">getelementpath</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">)</tt> </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 class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3331" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3331', 'getelementpath', 'link-3314');">getelementpath</a></tt><tt class="py-op">,</tt> <tt class="py-name">c</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 class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3332" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3332', 'getelementpath', 'link-3314');">getelementpath</a></tt><tt class="py-op">,</tt> <tt class="py-name">d2</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3208"></a><tt class="py-lineno">3208</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_elementtree_getelementpath_ns"></a><div id="ETreeOnlyTestCase.test_elementtree_getelementpath_ns-def"><a name="L3209"></a><tt class="py-lineno">3209</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_elementtree_getelementpath_ns-toggle" onclick="return toggle('ETreeOnlyTestCase.test_elementtree_getelementpath_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_elementtree_getelementpath_ns">test_elementtree_getelementpath_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_elementtree_getelementpath_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_elementtree_getelementpath_ns-expanded"><a name="L3210"></a><tt class="py-lineno">3210</tt>  <tt class="py-line">        <tt class="py-name">a</tt>  <tt class="py-op">=</tt> <tt id="link-3333" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3325', 'ElementTree', 'link-570');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt>  <tt class="py-comment"># not a parent of a/c/d1/d2</tt> </tt>
+<a name="L3217"></a><tt class="py-lineno">3217</tt>  <tt class="py-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">'.'</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3326" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3326', 'getelementpath', 'link-3311');">getelementpath</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="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 class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3327" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3327', 'getelementpath', 'link-3311');">getelementpath</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</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">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3328" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3328', 'getelementpath', 'link-3311');">getelementpath</a></tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
+<a name="L3220"></a><tt class="py-lineno">3220</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">tree</tt><tt class="py-op">.</tt><tt id="link-3329" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3329', 'getelementpath', 'link-3311');">getelementpath</a></tt><tt class="py-op">,</tt> <tt class="py-name">d2</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_elementtree_getelementpath_ns"></a><div id="ETreeOnlyTestCase.test_elementtree_getelementpath_ns-def"><a name="L3222"></a><tt class="py-lineno">3222</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_elementtree_getelementpath_ns-toggle" onclick="return toggle('ETreeOnlyTestCase.test_elementtree_getelementpath_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_elementtree_getelementpath_ns">test_elementtree_getelementpath_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_elementtree_getelementpath_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_elementtree_getelementpath_ns-expanded"><a name="L3223"></a><tt class="py-lineno">3223</tt>  <tt class="py-line">        <tt class="py-name">a</tt>  <tt class="py-op">=</tt> <tt id="link-3330" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -10413,11 +10409,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3333', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3334" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3330', 'etree', 'link-3');">etree</a></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-3334', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"{http://ns1/}a"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3211"></a><tt class="py-lineno">3211</tt>  <tt class="py-line">        <tt class="py-name">b</tt>  <tt class="py-op">=</tt> <tt id="link-3335" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3331', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"{http://ns1/}a"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3224"></a><tt class="py-lineno">3224</tt>  <tt class="py-line">        <tt class="py-name">b</tt>  <tt class="py-op">=</tt> <tt id="link-3332" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -10425,8 +10421,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3335', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3336" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3336', 'SubElement', 'link-112');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"{http://ns1/}b"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3212"></a><tt class="py-lineno">3212</tt>  <tt class="py-line">        <tt class="py-name">c</tt>  <tt class="py-op">=</tt> <tt id="link-3337" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3332', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3333" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3333', 'SubElement', 'link-112');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"{http://ns1/}b"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3225"></a><tt class="py-lineno">3225</tt>  <tt class="py-line">        <tt class="py-name">c</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.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -10434,8 +10430,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3337', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3338" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3338', 'SubElement', 'link-112');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"{http://ns1/}c"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3213"></a><tt class="py-lineno">3213</tt>  <tt class="py-line">        <tt class="py-name">d1</tt> <tt class="py-op">=</tt> <tt id="link-3339" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3334', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3335" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3335', 'SubElement', 'link-112');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"{http://ns1/}c"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3226"></a><tt class="py-lineno">3226</tt>  <tt class="py-line">        <tt class="py-name">d1</tt> <tt class="py-op">=</tt> <tt id="link-3336" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -10443,8 +10439,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3339', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3340" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3340', 'SubElement', 'link-112');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">"{http://ns1/}d"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3214"></a><tt class="py-lineno">3214</tt>  <tt class="py-line">        <tt class="py-name">d2</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-3336', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3337" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3337', 'SubElement', 'link-112');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">"{http://ns1/}d"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3227"></a><tt class="py-lineno">3227</tt>  <tt class="py-line">        <tt class="py-name">d2</tt> <tt class="py-op">=</tt> <tt id="link-3338" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -10452,8 +10448,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3341', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3342" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3342', 'SubElement', 'link-112');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">"{http://ns2/}d"</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">d3</tt> <tt class="py-op">=</tt> <tt id="link-3343" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3338', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3339" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3339', 'SubElement', 'link-112');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">"{http://ns2/}d"</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">d3</tt> <tt class="py-op">=</tt> <tt id="link-3340" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -10461,9 +10457,9 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3343', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3344" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3344', 'SubElement', 'link-112');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">"{http://ns1/}d"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3216"></a><tt class="py-lineno">3216</tt>  <tt class="py-line"> </tt>
-<a name="L3217"></a><tt class="py-lineno">3217</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3345" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3340', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3341" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3341', 'SubElement', 'link-112');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">"{http://ns1/}d"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3229"></a><tt class="py-lineno">3229</tt>  <tt class="py-line"> </tt>
+<a name="L3230"></a><tt class="py-lineno">3230</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3342" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -10471,49 +10467,49 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3345', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3346" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3342', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3343" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3346', 'ElementTree', 'link-573');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">a</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">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'.'</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3347" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3347', 'getelementpath', 'link-3314');">getelementpath</a></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="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 class="py-string">'{http://ns1/}c/{http://ns1/}d[1]'</tt><tt class="py-op">,</tt> </tt>
-<a name="L3220"></a><tt class="py-lineno">3220</tt>  <tt class="py-line">                         <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3348" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3348', 'getelementpath', 'link-3314');">getelementpath</a></tt><tt class="py-op">(</tt><tt class="py-name">d1</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </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">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns1/}c/{http://ns2/}d'</tt><tt class="py-op">,</tt> </tt>
-<a name="L3222"></a><tt class="py-lineno">3222</tt>  <tt class="py-line">                         <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3349" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3349', 'getelementpath', 'link-3314');">getelementpath</a></tt><tt class="py-op">(</tt><tt class="py-name">d2</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">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns1/}c/{http://ns1/}d[2]'</tt><tt class="py-op">,</tt> </tt>
-<a name="L3224"></a><tt class="py-lineno">3224</tt>  <tt class="py-line">                         <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3350" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3350', 'getelementpath', 'link-3314');">getelementpath</a></tt><tt class="py-op">(</tt><tt class="py-name">d3</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">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3351" class="py-name"><a title="lxml.etree._Element.find
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3343', 'ElementTree', 'link-570');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L3231"></a><tt class="py-lineno">3231</tt>  <tt class="py-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">'.'</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3344" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3344', 'getelementpath', 'link-3311');">getelementpath</a></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="L3232"></a><tt class="py-lineno">3232</tt>  <tt class="py-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">'{http://ns1/}c/{http://ns1/}d[1]'</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">tree</tt><tt class="py-op">.</tt><tt id="link-3345" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3345', 'getelementpath', 'link-3311');">getelementpath</a></tt><tt class="py-op">(</tt><tt class="py-name">d1</tt><tt class="py-op">)</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns1/}c/{http://ns2/}d'</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">tree</tt><tt class="py-op">.</tt><tt id="link-3346" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3346', 'getelementpath', 'link-3311');">getelementpath</a></tt><tt class="py-op">(</tt><tt class="py-name">d2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3236"></a><tt class="py-lineno">3236</tt>  <tt class="py-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">'{http://ns1/}c/{http://ns1/}d[2]'</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">tree</tt><tt class="py-op">.</tt><tt id="link-3347" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3347', 'getelementpath', 'link-3311');">getelementpath</a></tt><tt class="py-op">(</tt><tt class="py-name">d3</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3348" class="py-name"><a title="lxml.etree._Element.find
 lxml.etree._ElementTree.find
 lxml.objectify.ObjectPath.find
 lxml.tests.selftest.find
-lxml.tests.selftest2.find" class="py-name" href="#" onclick="return doclink('link-3351', 'find', 'link-3159');">find</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3352" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3352', 'getelementpath', 'link-3314');">getelementpath</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>
-<a name="L3227"></a><tt class="py-lineno">3227</tt>  <tt class="py-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">b</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3353" class="py-name"><a title="lxml.etree._Element.find
+lxml.tests.selftest2.find" class="py-name" href="#" onclick="return doclink('link-3348', 'find', 'link-3156');">find</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3349" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3349', 'getelementpath', 'link-3311');">getelementpath</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>
+<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">b</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3350" class="py-name"><a title="lxml.etree._Element.find
 lxml.etree._ElementTree.find
 lxml.objectify.ObjectPath.find
 lxml.tests.selftest.find
-lxml.tests.selftest2.find" class="py-name" href="#" onclick="return doclink('link-3353', 'find', 'link-3159');">find</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3354" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3354', 'getelementpath', 'link-3314');">getelementpath</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="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">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3355" class="py-name"><a title="lxml.etree._Element.find
+lxml.tests.selftest2.find" class="py-name" href="#" onclick="return doclink('link-3350', 'find', 'link-3156');">find</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3351" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3351', 'getelementpath', 'link-3311');">getelementpath</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="L3241"></a><tt class="py-lineno">3241</tt>  <tt class="py-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">c</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3352" class="py-name"><a title="lxml.etree._Element.find
 lxml.etree._ElementTree.find
 lxml.objectify.ObjectPath.find
 lxml.tests.selftest.find
-lxml.tests.selftest2.find" class="py-name" href="#" onclick="return doclink('link-3355', 'find', 'link-3159');">find</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3356" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3356', 'getelementpath', 'link-3314');">getelementpath</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>
-<a name="L3229"></a><tt class="py-lineno">3229</tt>  <tt class="py-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">d1</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3357" class="py-name"><a title="lxml.etree._Element.find
+lxml.tests.selftest2.find" class="py-name" href="#" onclick="return doclink('link-3352', 'find', 'link-3156');">find</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3353" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3353', 'getelementpath', 'link-3311');">getelementpath</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>
+<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">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">d1</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3354" class="py-name"><a title="lxml.etree._Element.find
 lxml.etree._ElementTree.find
 lxml.objectify.ObjectPath.find
 lxml.tests.selftest.find
-lxml.tests.selftest2.find" class="py-name" href="#" onclick="return doclink('link-3357', 'find', 'link-3159');">find</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3358" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3358', 'getelementpath', 'link-3314');">getelementpath</a></tt><tt class="py-op">(</tt><tt class="py-name">d1</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3230"></a><tt class="py-lineno">3230</tt>  <tt class="py-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">d2</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3359" class="py-name"><a title="lxml.etree._Element.find
+lxml.tests.selftest2.find" class="py-name" href="#" onclick="return doclink('link-3354', 'find', 'link-3156');">find</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3355" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3355', 'getelementpath', 'link-3311');">getelementpath</a></tt><tt class="py-op">(</tt><tt class="py-name">d1</tt><tt class="py-op">)</tt><tt class="py-op">)</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">d2</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3356" class="py-name"><a title="lxml.etree._Element.find
 lxml.etree._ElementTree.find
 lxml.objectify.ObjectPath.find
 lxml.tests.selftest.find
-lxml.tests.selftest2.find" class="py-name" href="#" onclick="return doclink('link-3359', 'find', 'link-3159');">find</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3360" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3360', 'getelementpath', 'link-3314');">getelementpath</a></tt><tt class="py-op">(</tt><tt class="py-name">d2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3231"></a><tt class="py-lineno">3231</tt>  <tt class="py-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">d3</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3361" class="py-name"><a title="lxml.etree._Element.find
+lxml.tests.selftest2.find" class="py-name" href="#" onclick="return doclink('link-3356', 'find', 'link-3156');">find</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3357" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3357', 'getelementpath', 'link-3311');">getelementpath</a></tt><tt class="py-op">(</tt><tt class="py-name">d2</tt><tt class="py-op">)</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 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">d3</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3358" class="py-name"><a title="lxml.etree._Element.find
 lxml.etree._ElementTree.find
 lxml.objectify.ObjectPath.find
 lxml.tests.selftest.find
-lxml.tests.selftest2.find" class="py-name" href="#" onclick="return doclink('link-3361', 'find', 'link-3159');">find</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3362" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3362', 'getelementpath', 'link-3314');">getelementpath</a></tt><tt class="py-op">(</tt><tt class="py-name">d3</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3232"></a><tt class="py-lineno">3232</tt>  <tt class="py-line"> </tt>
-<a name="L3233"></a><tt class="py-lineno">3233</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3363" class="py-name"><a title="lxml.etree
+lxml.tests.selftest2.find" class="py-name" href="#" onclick="return doclink('link-3358', 'find', 'link-3156');">find</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3359" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3359', 'getelementpath', 'link-3311');">getelementpath</a></tt><tt class="py-op">(</tt><tt class="py-name">d3</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3245"></a><tt class="py-lineno">3245</tt>  <tt class="py-line"> </tt>
+<a name="L3246"></a><tt class="py-lineno">3246</tt>  <tt class="py-line">        <tt class="py-name">tree</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.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -10521,29 +10517,29 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3363', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3364" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3360', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3361" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3364', 'ElementTree', 'link-573');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">c</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns1/}d[1]'</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3365" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3365', 'getelementpath', 'link-3314');">getelementpath</a></tt><tt class="py-op">(</tt><tt class="py-name">d1</tt><tt class="py-op">)</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">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns2/}d'</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3366" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3366', 'getelementpath', 'link-3314');">getelementpath</a></tt><tt class="py-op">(</tt><tt class="py-name">d2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3236"></a><tt class="py-lineno">3236</tt>  <tt class="py-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">'{http://ns1/}d[2]'</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3367" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3367', 'getelementpath', 'link-3314');">getelementpath</a></tt><tt class="py-op">(</tt><tt class="py-name">d3</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">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">d1</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3368" class="py-name"><a title="lxml.etree._Element.find
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3361', 'ElementTree', 'link-570');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">c</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">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns1/}d[1]'</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3362" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3362', 'getelementpath', 'link-3311');">getelementpath</a></tt><tt class="py-op">(</tt><tt class="py-name">d1</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3248"></a><tt class="py-lineno">3248</tt>  <tt class="py-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">'{http://ns2/}d'</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3363" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3363', 'getelementpath', 'link-3311');">getelementpath</a></tt><tt class="py-op">(</tt><tt class="py-name">d2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3249"></a><tt class="py-lineno">3249</tt>  <tt class="py-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">'{http://ns1/}d[2]'</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3364" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3364', 'getelementpath', 'link-3311');">getelementpath</a></tt><tt class="py-op">(</tt><tt class="py-name">d3</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3250"></a><tt class="py-lineno">3250</tt>  <tt class="py-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">d1</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3365" class="py-name"><a title="lxml.etree._Element.find
 lxml.etree._ElementTree.find
 lxml.objectify.ObjectPath.find
 lxml.tests.selftest.find
-lxml.tests.selftest2.find" class="py-name" href="#" onclick="return doclink('link-3368', 'find', 'link-3159');">find</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3369" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3369', 'getelementpath', 'link-3314');">getelementpath</a></tt><tt class="py-op">(</tt><tt class="py-name">d1</tt><tt class="py-op">)</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 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">d2</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3370" class="py-name"><a title="lxml.etree._Element.find
+lxml.tests.selftest2.find" class="py-name" href="#" onclick="return doclink('link-3365', 'find', 'link-3156');">find</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3366" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3366', 'getelementpath', 'link-3311');">getelementpath</a></tt><tt class="py-op">(</tt><tt class="py-name">d1</tt><tt class="py-op">)</tt><tt class="py-op">)</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">d2</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3367" class="py-name"><a title="lxml.etree._Element.find
 lxml.etree._ElementTree.find
 lxml.objectify.ObjectPath.find
 lxml.tests.selftest.find
-lxml.tests.selftest2.find" class="py-name" href="#" onclick="return doclink('link-3370', 'find', 'link-3159');">find</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3371" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3371', 'getelementpath', 'link-3314');">getelementpath</a></tt><tt class="py-op">(</tt><tt class="py-name">d2</tt><tt class="py-op">)</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 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">d3</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3372" class="py-name"><a title="lxml.etree._Element.find
+lxml.tests.selftest2.find" class="py-name" href="#" onclick="return doclink('link-3367', 'find', 'link-3156');">find</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3368" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3368', 'getelementpath', 'link-3311');">getelementpath</a></tt><tt class="py-op">(</tt><tt class="py-name">d2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3252"></a><tt class="py-lineno">3252</tt>  <tt class="py-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">d3</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3369" class="py-name"><a title="lxml.etree._Element.find
 lxml.etree._ElementTree.find
 lxml.objectify.ObjectPath.find
 lxml.tests.selftest.find
-lxml.tests.selftest2.find" class="py-name" href="#" onclick="return doclink('link-3372', 'find', 'link-3159');">find</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3373" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3373', 'getelementpath', 'link-3314');">getelementpath</a></tt><tt class="py-op">(</tt><tt class="py-name">d3</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3240"></a><tt class="py-lineno">3240</tt>  <tt class="py-line"> </tt>
-<a name="L3241"></a><tt class="py-lineno">3241</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3374" class="py-name"><a title="lxml.etree
+lxml.tests.selftest2.find" class="py-name" href="#" onclick="return doclink('link-3369', 'find', 'link-3156');">find</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3370" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3370', 'getelementpath', 'link-3311');">getelementpath</a></tt><tt class="py-op">(</tt><tt class="py-name">d3</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3253"></a><tt class="py-lineno">3253</tt>  <tt class="py-line"> </tt>
+<a name="L3254"></a><tt class="py-lineno">3254</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3371" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -10551,17 +10547,17 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3374', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3375" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3371', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3372" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3375', 'ElementTree', 'link-573');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt>  <tt class="py-comment"># not a parent of d1/d2</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 class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3376" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3376', 'getelementpath', 'link-3314');">getelementpath</a></tt><tt class="py-op">,</tt> <tt class="py-name">d1</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">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3377" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3377', 'getelementpath', 'link-3314');">getelementpath</a></tt><tt class="py-op">,</tt> <tt class="py-name">d2</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_elementtree_find_qname"></a><div id="ETreeOnlyTestCase.test_elementtree_find_qname-def"><a name="L3245"></a><tt class="py-lineno">3245</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="L3246"></a><tt class="py-lineno">3246</tt>  <tt class="py-line">        <tt id="link-3378" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3372', 'ElementTree', 'link-570');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt>  <tt class="py-comment"># not a parent of d1/d2</tt> </tt>
+<a name="L3255"></a><tt class="py-lineno">3255</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">tree</tt><tt class="py-op">.</tt><tt id="link-3373" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3373', 'getelementpath', 'link-3311');">getelementpath</a></tt><tt class="py-op">,</tt> <tt class="py-name">d1</tt><tt class="py-op">)</tt> </tt>
+<a name="L3256"></a><tt class="py-lineno">3256</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">tree</tt><tt class="py-op">.</tt><tt id="link-3374" class="py-name"><a title="lxml.etree._ElementTree.getelementpath" class="py-name" href="#" onclick="return doclink('link-3374', 'getelementpath', 'link-3311');">getelementpath</a></tt><tt class="py-op">,</tt> <tt class="py-name">d2</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3257"></a><tt class="py-lineno">3257</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_elementtree_find_qname"></a><div id="ETreeOnlyTestCase.test_elementtree_find_qname-def"><a name="L3258"></a><tt class="py-lineno">3258</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="L3259"></a><tt class="py-lineno">3259</tt>  <tt class="py-line">        <tt id="link-3375" 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-3378', 'XML', 'link-234');">XML</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.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3375', 'XML', 'link-234');">XML</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.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -10569,13 +10565,13 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3379', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3380" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3376', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3377" 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-3380', 'XML', 'link-234');">XML</a></tt> </tt>
-<a name="L3247"></a><tt class="py-lineno">3247</tt>  <tt class="py-line">        <tt id="link-3381" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3377', 'XML', 'link-234');">XML</a></tt> </tt>
+<a name="L3260"></a><tt class="py-lineno">3260</tt>  <tt class="py-line">        <tt id="link-3378" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3381', 'ElementTree', 'link-573');">ElementTree</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
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3378', 'ElementTree', 'link-570');">ElementTree</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.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -10583,11 +10579,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3382', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3383" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3379', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3380" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3383', 'ElementTree', 'link-573');">ElementTree</a></tt> </tt>
-<a name="L3248"></a><tt class="py-lineno">3248</tt>  <tt class="py-line">        <tt id="link-3384" class="py-name"><a title="lxml.etree.QName
-xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-3384', 'QName', 'link-157');">QName</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
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3380', 'ElementTree', 'link-570');">ElementTree</a></tt> </tt>
+<a name="L3261"></a><tt class="py-lineno">3261</tt>  <tt class="py-line">        <tt id="link-3381" class="py-name"><a title="lxml.etree.QName
+xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-3381', 'QName', 'link-157');">QName</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.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -10595,26 +10591,26 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3385', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3386" class="py-name"><a title="lxml.etree.QName
-xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-3386', 'QName', 'link-157');">QName</a></tt> </tt>
-<a name="L3249"></a><tt class="py-lineno">3249</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3387" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3382', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3383" class="py-name"><a title="lxml.etree.QName
+xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-3383', 'QName', 'link-157');">QName</a></tt> </tt>
+<a name="L3262"></a><tt class="py-lineno">3262</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3384" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3387', 'ElementTree', 'link-573');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-3388" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3384', 'ElementTree', 'link-570');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-3385" 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-3388', 'XML', 'link-234');">XML</a></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-18');">_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="L3250"></a><tt class="py-lineno">3250</tt>  <tt class="py-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-3390" class="py-name"><a title="lxml.etree._Element.find
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3385', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3386" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3386', '_bytes', 'link-18');">_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="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">tree</tt><tt class="py-op">.</tt><tt id="link-3387" class="py-name"><a title="lxml.etree._Element.find
 lxml.etree._ElementTree.find
 lxml.objectify.ObjectPath.find
 lxml.tests.selftest.find
-lxml.tests.selftest2.find" class="py-name" href="#" onclick="return doclink('link-3390', 'find', 'link-3159');">find</a></tt><tt class="py-op">(</tt><tt id="link-3391" class="py-name"><a title="lxml.etree.QName
-xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-3391', 'QName', 'link-157');">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-3392" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3392', 'getroot', 'link-805');">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="L3251"></a><tt class="py-lineno">3251</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_elementtree_findall_qname"></a><div id="ETreeOnlyTestCase.test_elementtree_findall_qname-def"><a name="L3252"></a><tt class="py-lineno">3252</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="L3253"></a><tt class="py-lineno">3253</tt>  <tt class="py-line">        <tt id="link-3393" class="py-name"><a title="lxml.etree.XML
+lxml.tests.selftest2.find" class="py-name" href="#" onclick="return doclink('link-3387', 'find', 'link-3156');">find</a></tt><tt class="py-op">(</tt><tt id="link-3388" class="py-name"><a title="lxml.etree.QName
+xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-3388', 'QName', 'link-157');">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-3389" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3389', 'getroot', 'link-802');">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="L3264"></a><tt class="py-lineno">3264</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_elementtree_findall_qname"></a><div id="ETreeOnlyTestCase.test_elementtree_findall_qname-def"><a name="L3265"></a><tt class="py-lineno">3265</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="L3266"></a><tt class="py-lineno">3266</tt>  <tt class="py-line">        <tt id="link-3390" 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-3393', 'XML', 'link-234');">XML</a></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.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3390', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3391" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -10622,13 +10618,13 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3394', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3395" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3391', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3392" 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-3395', 'XML', 'link-234');">XML</a></tt> </tt>
-<a name="L3254"></a><tt class="py-lineno">3254</tt>  <tt class="py-line">        <tt id="link-3396" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3392', 'XML', 'link-234');">XML</a></tt> </tt>
+<a name="L3267"></a><tt class="py-lineno">3267</tt>  <tt class="py-line">        <tt id="link-3393" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3396', 'ElementTree', 'link-573');">ElementTree</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
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3393', 'ElementTree', 'link-570');">ElementTree</a></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.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -10636,11 +10632,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3397', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3398" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3394', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3395" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3398', 'ElementTree', 'link-573');">ElementTree</a></tt> </tt>
-<a name="L3255"></a><tt class="py-lineno">3255</tt>  <tt class="py-line">        <tt id="link-3399" class="py-name"><a title="lxml.etree.QName
-xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-3399', 'QName', 'link-157');">QName</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
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3395', 'ElementTree', 'link-570');">ElementTree</a></tt> </tt>
+<a name="L3268"></a><tt class="py-lineno">3268</tt>  <tt class="py-line">        <tt id="link-3396" class="py-name"><a title="lxml.etree.QName
+xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-3396', 'QName', 'link-157');">QName</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.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -10648,23 +10644,23 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3400', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3401" class="py-name"><a title="lxml.etree.QName
-xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-3401', 'QName', 'link-157');">QName</a></tt> </tt>
-<a name="L3256"></a><tt class="py-lineno">3256</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3402" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3397', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3398" class="py-name"><a title="lxml.etree.QName
+xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-3398', 'QName', 'link-157');">QName</a></tt> </tt>
+<a name="L3269"></a><tt class="py-lineno">3269</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3399" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3402', 'ElementTree', 'link-573');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-3403" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3399', 'ElementTree', 'link-570');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-3400" 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-3403', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3404" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3404', '_bytes', 'link-18');">_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="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">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-3405" 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-3405', 'findall', 'link-3405');">findall</a></tt><tt class="py-op">(</tt><tt id="link-3406" class="py-name"><a title="lxml.etree.QName
-xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-3406', 'QName', 'link-157');">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="L3258"></a><tt class="py-lineno">3258</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="L3259"></a><tt class="py-lineno">3259</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="L3260"></a><tt class="py-lineno">3260</tt>  <tt class="py-line">        <tt id="link-3407" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3400', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3401" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3401', '_bytes', 'link-18');">_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="L3270"></a><tt class="py-lineno">3270</tt>  <tt class="py-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-3402" 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-3402', 'findall', 'link-3402');">findall</a></tt><tt class="py-op">(</tt><tt id="link-3403" class="py-name"><a title="lxml.etree.QName
+xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-3403', 'QName', 'link-157');">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="L3271"></a><tt class="py-lineno">3271</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="L3272"></a><tt class="py-lineno">3272</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="L3273"></a><tt class="py-lineno">3273</tt>  <tt class="py-line">        <tt id="link-3404" 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-3407', 'XML', 'link-234');">XML</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
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3404', 'XML', 'link-234');">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.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -10672,13 +10668,13 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3408', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3409" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3405', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3406" 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-3409', 'XML', 'link-234');">XML</a></tt> </tt>
-<a name="L3261"></a><tt class="py-lineno">3261</tt>  <tt class="py-line">        <tt id="link-3410" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3406', 'XML', 'link-234');">XML</a></tt> </tt>
+<a name="L3274"></a><tt class="py-lineno">3274</tt>  <tt class="py-line">        <tt id="link-3407" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3410', 'ElementTree', 'link-573');">ElementTree</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.ElementTree" class="py-name" href="#" onclick="return doclink('link-3407', 'ElementTree', 'link-570');">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
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -10686,11 +10682,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3411', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3412" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3408', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3409" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3412', 'ElementTree', 'link-573');">ElementTree</a></tt> </tt>
-<a name="L3262"></a><tt class="py-lineno">3262</tt>  <tt class="py-line">        <tt id="link-3413" class="py-name"><a title="lxml.etree.QName
-xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-3413', 'QName', 'link-157');">QName</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3414" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3409', 'ElementTree', 'link-570');">ElementTree</a></tt> </tt>
+<a name="L3275"></a><tt class="py-lineno">3275</tt>  <tt class="py-line">        <tt id="link-3410" class="py-name"><a title="lxml.etree.QName
+xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-3410', 'QName', 'link-157');">QName</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
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -10698,27 +10694,27 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3414', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3415" class="py-name"><a title="lxml.etree.QName
-xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-3415', 'QName', 'link-157');">QName</a></tt> </tt>
-<a name="L3263"></a><tt class="py-lineno">3263</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3416" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3411', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3412" class="py-name"><a title="lxml.etree.QName
+xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-3412', 'QName', 'link-157');">QName</a></tt> </tt>
+<a name="L3276"></a><tt class="py-lineno">3276</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.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3416', 'ElementTree', 'link-573');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-3417" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3413', 'ElementTree', 'link-570');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-3414" 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-234');">XML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3264"></a><tt class="py-lineno">3264</tt>  <tt class="py-line">                <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-18');">_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="L3265"></a><tt class="py-lineno">3265</tt>  <tt class="py-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-3419" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-3419', 'findall', 'link-3405');">findall</a></tt><tt class="py-op">(</tt><tt id="link-3420" class="py-name"><a title="lxml.etree.QName
-xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-3420', 'QName', 'link-157');">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="L3266"></a><tt class="py-lineno">3266</tt>  <tt class="py-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-3421" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-3421', 'findall', 'link-3405');">findall</a></tt><tt class="py-op">(</tt><tt id="link-3422" class="py-name"><a title="lxml.etree.QName
-xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-3422', 'QName', 'link-157');">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="L3267"></a><tt class="py-lineno">3267</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_findall_ns"></a><div id="ETreeOnlyTestCase.test_findall_ns-def"><a name="L3268"></a><tt class="py-lineno">3268</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="L3269"></a><tt class="py-lineno">3269</tt>  <tt class="py-line">        <tt id="link-3423" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3414', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3277"></a><tt class="py-lineno">3277</tt>  <tt class="py-line">                <tt id="link-3415" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3415', '_bytes', 'link-18');">_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="L3278"></a><tt class="py-lineno">3278</tt>  <tt class="py-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-3416" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-3416', 'findall', 'link-3402');">findall</a></tt><tt class="py-op">(</tt><tt id="link-3417" class="py-name"><a title="lxml.etree.QName
+xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-3417', 'QName', 'link-157');">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="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">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-3418" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-3418', 'findall', 'link-3402');">findall</a></tt><tt class="py-op">(</tt><tt id="link-3419" class="py-name"><a title="lxml.etree.QName
+xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-3419', 'QName', 'link-157');">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="L3280"></a><tt class="py-lineno">3280</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_findall_ns"></a><div id="ETreeOnlyTestCase.test_findall_ns-def"><a name="L3281"></a><tt class="py-lineno">3281</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="L3282"></a><tt class="py-lineno">3282</tt>  <tt class="py-line">        <tt id="link-3420" 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-3423', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3424" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3420', 'XML', 'link-234');">XML</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.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -10726,26 +10722,26 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3424', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3425" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3421', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3422" 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-3425', 'XML', 'link-234');">XML</a></tt> </tt>
-<a name="L3270"></a><tt class="py-lineno">3270</tt>  <tt class="py-line">        <tt id="link-3426" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3426', 'root', 'link-247');">root</a></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-3422', 'XML', 'link-234');">XML</a></tt> </tt>
+<a name="L3283"></a><tt class="py-lineno">3283</tt>  <tt class="py-line">        <tt id="link-3423" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3423', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3424" 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-234');">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-18');">_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="L3271"></a><tt class="py-lineno">3271</tt>  <tt class="py-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-3429" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3429', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3430" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-3430', 'findall', 'link-3405');">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="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 class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-3431" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3431', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3432" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-3432', 'findall', 'link-3405');">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="L3273"></a><tt class="py-lineno">3273</tt>  <tt class="py-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-3433" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3433', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3434" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-3434', 'findall', 'link-3405');">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="L3274"></a><tt class="py-lineno">3274</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_findall_different_nsmaps"></a><div id="ETreeOnlyTestCase.test_findall_different_nsmaps-def"><a name="L3275"></a><tt class="py-lineno">3275</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="L3276"></a><tt class="py-lineno">3276</tt>  <tt class="py-line">        <tt id="link-3435" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3424', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3425" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3425', '_bytes', 'link-18');">_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="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 class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-3426" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3426', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3427" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-3427', 'findall', 'link-3402');">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="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">len</tt><tt class="py-op">(</tt><tt id="link-3428" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3428', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3429" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-3429', 'findall', 'link-3402');">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="L3286"></a><tt class="py-lineno">3286</tt>  <tt class="py-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-3430" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3430', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3431" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-3431', 'findall', 'link-3402');">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="L3287"></a><tt class="py-lineno">3287</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_findall_different_nsmaps"></a><div id="ETreeOnlyTestCase.test_findall_different_nsmaps-def"><a name="L3288"></a><tt class="py-lineno">3288</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="L3289"></a><tt class="py-lineno">3289</tt>  <tt class="py-line">        <tt id="link-3432" 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-234');">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-3432', 'XML', 'link-234');">XML</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.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -10753,34 +10749,34 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3436', 'etree', 'link-3');">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-3433', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3434" 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-234');">XML</a></tt> </tt>
-<a name="L3277"></a><tt class="py-lineno">3277</tt>  <tt class="py-line">        <tt id="link-3438" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3438', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3439" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3434', 'XML', 'link-234');">XML</a></tt> </tt>
+<a name="L3290"></a><tt class="py-lineno">3290</tt>  <tt class="py-line">        <tt id="link-3435" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3435', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3436" 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-3439', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3440" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3440', '_bytes', 'link-18');">_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="L3278"></a><tt class="py-lineno">3278</tt>  <tt class="py-line">        <tt id="link-3441" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-3441', 'nsmap', 'link-202');">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="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">len</tt><tt class="py-op">(</tt><tt id="link-3442" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3442', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3443" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-3443', 'findall', 'link-3405');">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-3444" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-3444', 'nsmap', 'link-202');">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="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 class="py-name">len</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-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3446" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-3446', 'findall', 'link-3405');">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-3447" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-3447', 'nsmap', 'link-202');">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="L3281"></a><tt class="py-lineno">3281</tt>  <tt class="py-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-3448" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3448', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3449" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-3449', 'findall', 'link-3405');">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-3450" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-3450', 'nsmap', 'link-202');">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="L3282"></a><tt class="py-lineno">3282</tt>  <tt class="py-line">        <tt id="link-3451" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-3451', 'nsmap', 'link-202');">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="L3283"></a><tt class="py-lineno">3283</tt>  <tt class="py-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-3452" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3452', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3453" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-3453', 'findall', 'link-3405');">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-3454" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-3454', 'nsmap', 'link-202');">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="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 class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-3455" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3455', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3456" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-3456', 'findall', 'link-3405');">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-3457" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-3457', 'nsmap', 'link-202');">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="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">len</tt><tt class="py-op">(</tt><tt id="link-3458" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3458', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3459" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-3459', 'findall', 'link-3405');">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-3460" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-3460', 'nsmap', 'link-202');">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="L3286"></a><tt class="py-lineno">3286</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_findall_empty_prefix"></a><div id="ETreeOnlyTestCase.test_findall_empty_prefix-def"><a name="L3287"></a><tt class="py-lineno">3287</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_findall_empty_prefix-toggle" onclick="return toggle('ETreeOnlyTestCase.test_findall_empty_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_findall_empty_prefix">test_findall_empty_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_findall_empty_prefix-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_findall_empty_prefix-expanded"><a name="L3288"></a><tt class="py-lineno">3288</tt>  <tt class="py-line">        <tt id="link-3461" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3436', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3437" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3437', '_bytes', 'link-18');">_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="L3291"></a><tt class="py-lineno">3291</tt>  <tt class="py-line">        <tt id="link-3438" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-3438', 'nsmap', 'link-202');">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="L3292"></a><tt class="py-lineno">3292</tt>  <tt class="py-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-3439" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3439', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3440" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-3440', 'findall', 'link-3402');">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-3441" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-3441', 'nsmap', 'link-202');">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="L3293"></a><tt class="py-lineno">3293</tt>  <tt class="py-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-3442" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3442', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3443" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-3443', 'findall', 'link-3402');">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-3444" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-3444', 'nsmap', 'link-202');">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="L3294"></a><tt class="py-lineno">3294</tt>  <tt class="py-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-3445" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3445', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3446" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-3446', 'findall', 'link-3402');">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-3447" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-3447', 'nsmap', 'link-202');">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="L3295"></a><tt class="py-lineno">3295</tt>  <tt class="py-line">        <tt id="link-3448" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-3448', 'nsmap', 'link-202');">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="L3296"></a><tt class="py-lineno">3296</tt>  <tt class="py-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-3449" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3449', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3450" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-3450', 'findall', 'link-3402');">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-3451" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-3451', 'nsmap', 'link-202');">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="L3297"></a><tt class="py-lineno">3297</tt>  <tt class="py-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-3452" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3452', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3453" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-3453', 'findall', 'link-3402');">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-3454" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-3454', 'nsmap', 'link-202');">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="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">len</tt><tt class="py-op">(</tt><tt id="link-3455" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3455', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3456" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-3456', 'findall', 'link-3402');">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-3457" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-3457', 'nsmap', 'link-202');">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="L3299"></a><tt class="py-lineno">3299</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_findall_empty_prefix"></a><div id="ETreeOnlyTestCase.test_findall_empty_prefix-def"><a name="L3300"></a><tt class="py-lineno">3300</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_findall_empty_prefix-toggle" onclick="return toggle('ETreeOnlyTestCase.test_findall_empty_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_findall_empty_prefix">test_findall_empty_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_findall_empty_prefix-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_findall_empty_prefix-expanded"><a name="L3301"></a><tt class="py-lineno">3301</tt>  <tt class="py-line">        <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-3461', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3462" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3458', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3459" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -10788,29 +10784,29 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3462', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3463" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3459', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><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-3463', 'XML', 'link-234');">XML</a></tt> </tt>
-<a name="L3289"></a><tt class="py-lineno">3289</tt>  <tt class="py-line">        <tt id="link-3464" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3464', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3465" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3460', 'XML', 'link-234');">XML</a></tt> </tt>
+<a name="L3302"></a><tt class="py-lineno">3302</tt>  <tt class="py-line">        <tt id="link-3461" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3461', 'root', 'link-247');">root</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-3465', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3466" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3466', '_bytes', 'link-18');">_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="L3290"></a><tt class="py-lineno">3290</tt>  <tt class="py-line">        <tt id="link-3467" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-3467', 'nsmap', 'link-202');">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="L3291"></a><tt class="py-lineno">3291</tt>  <tt class="py-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-3468" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3468', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3469" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-3469', 'findall', 'link-3405');">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-3470" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-3470', 'nsmap', 'link-202');">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="L3292"></a><tt class="py-lineno">3292</tt>  <tt class="py-line">        <tt id="link-3471" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-3471', 'nsmap', 'link-202');">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 class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'Y'</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">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-3472" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3472', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3473" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-3473', 'findall', 'link-3405');">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-3474" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-3474', 'nsmap', 'link-202');">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="L3294"></a><tt class="py-lineno">3294</tt>  <tt class="py-line">        <tt id="link-3475" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-3475', 'nsmap', 'link-202');">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 class="py-string">''</tt><tt class="py-op">:</tt> <tt class="py-string">'Y'</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">len</tt><tt class="py-op">(</tt><tt id="link-3476" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3476', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3477" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-3477', 'findall', 'link-3405');">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-3478" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-3478', 'nsmap', 'link-202');">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>
-</div><a name="L3296"></a><tt class="py-lineno">3296</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_findall_syntax_error"></a><div id="ETreeOnlyTestCase.test_findall_syntax_error-def"><a name="L3297"></a><tt class="py-lineno">3297</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="L3298"></a><tt class="py-lineno">3298</tt>  <tt class="py-line">        <tt id="link-3479" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3462', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3463" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3463', '_bytes', 'link-18');">_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="L3303"></a><tt class="py-lineno">3303</tt>  <tt class="py-line">        <tt id="link-3464" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-3464', 'nsmap', 'link-202');">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="L3304"></a><tt class="py-lineno">3304</tt>  <tt class="py-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-3465" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3465', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3466" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-3466', 'findall', 'link-3402');">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-3467" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-3467', 'nsmap', 'link-202');">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="L3305"></a><tt class="py-lineno">3305</tt>  <tt class="py-line">        <tt id="link-3468" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-3468', 'nsmap', 'link-202');">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 class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'Y'</tt><tt class="py-op">}</tt> </tt>
+<a name="L3306"></a><tt class="py-lineno">3306</tt>  <tt class="py-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-3469" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3469', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3470" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-3470', 'findall', 'link-3402');">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-3471" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-3471', 'nsmap', 'link-202');">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="L3307"></a><tt class="py-lineno">3307</tt>  <tt class="py-line">        <tt id="link-3472" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-3472', 'nsmap', 'link-202');">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 class="py-string">''</tt><tt class="py-op">:</tt> <tt class="py-string">'Y'</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">len</tt><tt class="py-op">(</tt><tt id="link-3473" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3473', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3474" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-3474', 'findall', 'link-3402');">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-3475" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-3475', 'nsmap', 'link-202');">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>
+</div><a name="L3309"></a><tt class="py-lineno">3309</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_findall_syntax_error"></a><div id="ETreeOnlyTestCase.test_findall_syntax_error-def"><a name="L3310"></a><tt class="py-lineno">3310</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="L3311"></a><tt class="py-lineno">3311</tt>  <tt class="py-line">        <tt id="link-3476" 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-3479', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3480" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3476', 'XML', 'link-234');">XML</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
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -10818,23 +10814,23 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3480', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3481" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3477', 'etree', 'link-3');">etree</a></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-3481', 'XML', 'link-234');">XML</a></tt> </tt>
-<a name="L3299"></a><tt class="py-lineno">3299</tt>  <tt class="py-line">        <tt id="link-3482" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3482', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3483" 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-234');">XML</a></tt> </tt>
+<a name="L3312"></a><tt class="py-lineno">3312</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-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3480" 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-3483', 'XML', 'link-234');">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-18');">_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="L3300"></a><tt class="py-lineno">3300</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-3485" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3485', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3486" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-3486', 'findall', 'link-3405');">findall</a></tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
-<a name="L3301"></a><tt class="py-lineno">3301</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-3487" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3487', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3488" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-3488', 'findall', 'link-3405');">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="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">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">SyntaxError</tt><tt class="py-op">,</tt> <tt id="link-3489" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3489', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3490" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-3490', 'findall', 'link-3405');">findall</a></tt><tt class="py-op">,</tt> <tt class="py-string">'.///'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3303"></a><tt class="py-lineno">3303</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_index"></a><div id="ETreeOnlyTestCase.test_index-def"><a name="L3304"></a><tt class="py-lineno">3304</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="L3305"></a><tt class="py-lineno">3305</tt>  <tt class="py-line">        <tt id="link-3491" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3480', 'XML', 'link-234');">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-18');">_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="L3313"></a><tt class="py-lineno">3313</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-3482" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3482', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3483" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-3483', 'findall', 'link-3402');">findall</a></tt><tt class="py-op">,</tt> <tt class="py-string">''</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">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">SyntaxError</tt><tt class="py-op">,</tt> <tt id="link-3484" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3484', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3485" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-3485', 'findall', 'link-3402');">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="L3315"></a><tt class="py-lineno">3315</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-3486" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3486', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3487" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-3487', 'findall', 'link-3402');">findall</a></tt><tt class="py-op">,</tt> <tt class="py-string">'.///'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3316"></a><tt class="py-lineno">3316</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_index"></a><div id="ETreeOnlyTestCase.test_index-def"><a name="L3317"></a><tt class="py-lineno">3317</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="L3318"></a><tt class="py-lineno">3318</tt>  <tt class="py-line">        <tt id="link-3488" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -10842,7 +10838,7 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3491', 'etree', 'link-3');">etree</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.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3488', 'etree', 'link-3');">etree</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.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -10850,8 +10846,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3492', 'etree', 'link-3');">etree</a></tt> </tt>
-<a name="L3306"></a><tt class="py-lineno">3306</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-3493" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3489', 'etree', 'link-3');">etree</a></tt> </tt>
+<a name="L3319"></a><tt class="py-lineno">3319</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-3490" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -10859,12 +10855,12 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3493', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3494" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3490', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3491" 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-3494', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3307"></a><tt class="py-lineno">3307</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="L3308"></a><tt class="py-lineno">3308</tt>  <tt class="py-line">            <tt id="link-3495" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3491', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3320"></a><tt class="py-lineno">3320</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="L3321"></a><tt class="py-lineno">3321</tt>  <tt class="py-line">            <tt id="link-3492" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -10872,30 +10868,30 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3495', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3496" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3496', 'SubElement', 'link-112');">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="L3309"></a><tt class="py-lineno">3309</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="L3310"></a><tt class="py-lineno">3310</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3311"></a><tt class="py-lineno">3311</tt>  <tt class="py-line">                <tt class="py-name">i</tt><tt class="py-op">,</tt> </tt>
-<a name="L3312"></a><tt class="py-lineno">3312</tt>  <tt class="py-line">                <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-3497" 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-3497', 'index', 'link-3497');">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="L3313"></a><tt class="py-lineno">3313</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3314"></a><tt class="py-lineno">3314</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-3498" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-3498', 'index', 'link-3497');">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="L3315"></a><tt class="py-lineno">3315</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="L3316"></a><tt class="py-lineno">3316</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-3499" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-3499', 'index', 'link-3497');">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="L3317"></a><tt class="py-lineno">3317</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="L3318"></a><tt class="py-lineno">3318</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-3500" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-3500', 'index', 'link-3497');">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="L3319"></a><tt class="py-lineno">3319</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="L3320"></a><tt class="py-lineno">3320</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-3501" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-3501', 'index', 'link-3497');">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="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">assertRaises</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">ValueError</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-3502" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-3502', 'index', 'link-3497');">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="L3323"></a><tt class="py-lineno">3323</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3324"></a><tt class="py-lineno">3324</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-3503" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-3503', 'index', 'link-3497');">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="L3325"></a><tt class="py-lineno">3325</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3326"></a><tt class="py-lineno">3326</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-3504" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-3504', 'index', 'link-3497');">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="L3327"></a><tt class="py-lineno">3327</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3328"></a><tt class="py-lineno">3328</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-3505" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-3505', 'index', 'link-3497');">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="L3329"></a><tt class="py-lineno">3329</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_replace"></a><div id="ETreeOnlyTestCase.test_replace-def"><a name="L3330"></a><tt class="py-lineno">3330</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="L3331"></a><tt class="py-lineno">3331</tt>  <tt class="py-line">        <tt id="link-3506" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3492', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3493" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3493', 'SubElement', 'link-112');">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="L3322"></a><tt class="py-lineno">3322</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="L3323"></a><tt class="py-lineno">3323</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3324"></a><tt class="py-lineno">3324</tt>  <tt class="py-line">                <tt class="py-name">i</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">e</tt><tt class="py-op">.</tt><tt id="link-3494" 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-3494', 'index', 'link-3494');">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="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-number">3</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-3495" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-3495', 'index', 'link-3494');">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="L3328"></a><tt class="py-lineno">3328</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="L3329"></a><tt class="py-lineno">3329</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-3496" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-3496', 'index', 'link-3494');">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="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">assertRaises</tt><tt class="py-op">(</tt> </tt>
+<a name="L3331"></a><tt class="py-lineno">3331</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-3497" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-3497', 'index', 'link-3494');">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="L3332"></a><tt class="py-lineno">3332</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="L3333"></a><tt class="py-lineno">3333</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-3498" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-3498', 'index', 'link-3494');">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="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">assertRaises</tt><tt class="py-op">(</tt> </tt>
+<a name="L3335"></a><tt class="py-lineno">3335</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-3499" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-3499', 'index', 'link-3494');">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="L3336"></a><tt class="py-lineno">3336</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3337"></a><tt class="py-lineno">3337</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-3500" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-3500', 'index', 'link-3494');">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="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>
+<a name="L3339"></a><tt class="py-lineno">3339</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-3501" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-3501', 'index', 'link-3494');">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="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>
+<a name="L3341"></a><tt class="py-lineno">3341</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-3502" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-3502', 'index', 'link-3494');">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="L3342"></a><tt class="py-lineno">3342</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_replace"></a><div id="ETreeOnlyTestCase.test_replace-def"><a name="L3343"></a><tt class="py-lineno">3343</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="L3344"></a><tt class="py-lineno">3344</tt>  <tt class="py-line">        <tt id="link-3503" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -10903,7 +10899,7 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3506', 'etree', 'link-3');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3507" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3503', 'etree', 'link-3');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3504" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -10911,8 +10907,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3507', 'etree', 'link-3');">etree</a></tt> </tt>
-<a name="L3332"></a><tt class="py-lineno">3332</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-3508" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3504', 'etree', 'link-3');">etree</a></tt> </tt>
+<a name="L3345"></a><tt class="py-lineno">3345</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-3505" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -10920,12 +10916,12 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3508', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3509" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3505', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3506" 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-3509', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3333"></a><tt class="py-lineno">3333</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="L3334"></a><tt class="py-lineno">3334</tt>  <tt class="py-line">            <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-3510" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3506', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3346"></a><tt class="py-lineno">3346</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="L3347"></a><tt class="py-lineno">3347</tt>  <tt class="py-line">            <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-3507" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -10933,56 +10929,56 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3510', 'etree', 'link-3');">etree</a></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-112');">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="L3335"></a><tt class="py-lineno">3335</tt>  <tt class="py-line">            <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-3512" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3507', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3508" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3508', 'SubElement', 'link-112');">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="L3348"></a><tt class="py-lineno">3348</tt>  <tt class="py-line">            <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-3509" 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-205');">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="L3336"></a><tt class="py-lineno">3336</tt>  <tt class="py-line">            <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-3513" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3513', 'tail', 'link-981');">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="L3337"></a><tt class="py-lineno">3337</tt>  <tt class="py-line"> </tt>
-<a name="L3338"></a><tt class="py-lineno">3338</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="L3339"></a><tt class="py-lineno">3339</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="L3340"></a><tt class="py-lineno">3340</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="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">e</tt><tt class="py-op">.</tt><tt id="link-3514" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-3514', 'replace', 'link-644');">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="L3343"></a><tt class="py-lineno">3343</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3344"></a><tt class="py-lineno">3344</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="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>
-<a name="L3346"></a><tt class="py-lineno">3346</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="L3347"></a><tt class="py-lineno">3347</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3348"></a><tt class="py-lineno">3348</tt>  <tt class="py-line">            <tt class="py-name">child1</tt><tt class="py-op">.</tt><tt id="link-3515" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3509', 'text', 'link-205');">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="L3349"></a><tt class="py-lineno">3349</tt>  <tt class="py-line">            <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-3510" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3510', 'tail', 'link-978');">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="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">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="L3352"></a><tt class="py-lineno">3352</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="L3353"></a><tt class="py-lineno">3353</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="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">e</tt><tt class="py-op">.</tt><tt id="link-3511" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-3511', 'replace', 'link-641');">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="L3356"></a><tt class="py-lineno">3356</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3357"></a><tt class="py-lineno">3357</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="L3358"></a><tt class="py-lineno">3358</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3359"></a><tt class="py-lineno">3359</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="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>
+<a name="L3361"></a><tt class="py-lineno">3361</tt>  <tt class="py-line">            <tt class="py-name">child1</tt><tt class="py-op">.</tt><tt id="link-3512" 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-3515', 'text', 'link-205');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"text1"</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>
-<a name="L3350"></a><tt class="py-lineno">3350</tt>  <tt class="py-line">            <tt class="py-name">child1</tt><tt class="py-op">.</tt><tt id="link-3516" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3516', 'tail', 'link-981');">tail</a></tt><tt class="py-op">,</tt> <tt class="py-string">"tail1"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3351"></a><tt class="py-lineno">3351</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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">child0</tt><tt class="py-op">.</tt><tt id="link-3517" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3517', 'tail', 'link-981');">tail</a></tt><tt class="py-op">,</tt> <tt class="py-string">"tail0"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3353"></a><tt class="py-lineno">3353</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3354"></a><tt class="py-lineno">3354</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="L3355"></a><tt class="py-lineno">3355</tt>  <tt class="py-line"> </tt>
-<a name="L3356"></a><tt class="py-lineno">3356</tt>  <tt class="py-line">        <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-3518" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-3518', 'replace', 'link-644');">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="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>
-<a name="L3358"></a><tt class="py-lineno">3358</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="L3359"></a><tt class="py-lineno">3359</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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">child1</tt><tt class="py-op">.</tt><tt id="link-3519" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3512', 'text', 'link-205');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"text1"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3362"></a><tt class="py-lineno">3362</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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">child1</tt><tt class="py-op">.</tt><tt id="link-3513" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3513', 'tail', 'link-978');">tail</a></tt><tt class="py-op">,</tt> <tt class="py-string">"tail1"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3364"></a><tt class="py-lineno">3364</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3365"></a><tt class="py-lineno">3365</tt>  <tt class="py-line">            <tt class="py-name">child0</tt><tt class="py-op">.</tt><tt id="link-3514" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3514', 'tail', 'link-978');">tail</a></tt><tt class="py-op">,</tt> <tt class="py-string">"tail0"</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3367"></a><tt class="py-lineno">3367</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="L3368"></a><tt class="py-lineno">3368</tt>  <tt class="py-line"> </tt>
+<a name="L3369"></a><tt class="py-lineno">3369</tt>  <tt class="py-line">        <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-3515" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-3515', 'replace', 'link-641');">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="L3370"></a><tt class="py-lineno">3370</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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">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="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>
+<a name="L3373"></a><tt class="py-lineno">3373</tt>  <tt class="py-line">            <tt class="py-name">child1</tt><tt class="py-op">.</tt><tt id="link-3516" 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-3519', 'text', 'link-205');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"text1"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3361"></a><tt class="py-lineno">3361</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3362"></a><tt class="py-lineno">3362</tt>  <tt class="py-line">            <tt class="py-name">child1</tt><tt class="py-op">.</tt><tt id="link-3520" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3520', 'tail', 'link-981');">tail</a></tt><tt class="py-op">,</tt> <tt class="py-string">"tail1"</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>
-<a name="L3364"></a><tt class="py-lineno">3364</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="L3365"></a><tt class="py-lineno">3365</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_replace_new"></a><div id="ETreeOnlyTestCase.test_replace_new-def"><a name="L3366"></a><tt class="py-lineno">3366</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="L3367"></a><tt class="py-lineno">3367</tt>  <tt class="py-line">        <tt id="link-3521" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3516', 'text', 'link-205');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"text1"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3374"></a><tt class="py-lineno">3374</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3375"></a><tt class="py-lineno">3375</tt>  <tt class="py-line">            <tt class="py-name">child1</tt><tt class="py-op">.</tt><tt id="link-3517" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3517', 'tail', 'link-978');">tail</a></tt><tt class="py-op">,</tt> <tt class="py-string">"tail1"</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>
+<a name="L3377"></a><tt class="py-lineno">3377</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="L3378"></a><tt class="py-lineno">3378</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_replace_new"></a><div id="ETreeOnlyTestCase.test_replace_new-def"><a name="L3379"></a><tt class="py-lineno">3379</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="L3380"></a><tt class="py-lineno">3380</tt>  <tt class="py-line">        <tt id="link-3518" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -10990,7 +10986,7 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3521', 'etree', 'link-3');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3522" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3518', 'etree', 'link-3');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3519" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -10998,8 +10994,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3522', 'etree', 'link-3');">etree</a></tt> </tt>
-<a name="L3368"></a><tt class="py-lineno">3368</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-3523" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3519', 'etree', 'link-3');">etree</a></tt> </tt>
+<a name="L3381"></a><tt class="py-lineno">3381</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-3520" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11007,12 +11003,12 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3523', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3524" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3520', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3521" 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-3524', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3369"></a><tt class="py-lineno">3369</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="L3370"></a><tt class="py-lineno">3370</tt>  <tt class="py-line">            <tt id="link-3525" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3521', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3382"></a><tt class="py-lineno">3382</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="L3383"></a><tt class="py-lineno">3383</tt>  <tt class="py-line">            <tt id="link-3522" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11020,9 +11016,9 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3525', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3526" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3526', 'SubElement', 'link-112');">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="L3371"></a><tt class="py-lineno">3371</tt>  <tt class="py-line"> </tt>
-<a name="L3372"></a><tt class="py-lineno">3372</tt>  <tt class="py-line">        <tt class="py-name">new_element</tt> <tt class="py-op">=</tt> <tt id="link-3527" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3522', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3523" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3523', 'SubElement', 'link-112');">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="L3384"></a><tt class="py-lineno">3384</tt>  <tt class="py-line"> </tt>
+<a name="L3385"></a><tt class="py-lineno">3385</tt>  <tt class="py-line">        <tt class="py-name">new_element</tt> <tt class="py-op">=</tt> <tt id="link-3524" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11030,40 +11026,40 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3527', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3528" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3524', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3525" 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-3528', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"test"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3373"></a><tt class="py-lineno">3373</tt>  <tt class="py-line">        <tt class="py-name">new_element</tt><tt class="py-op">.</tt><tt id="link-3529" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3525', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"test"</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">new_element</tt><tt class="py-op">.</tt><tt id="link-3526" 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-3529', 'text', 'link-205');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TESTTEXT"</tt> </tt>
-<a name="L3374"></a><tt class="py-lineno">3374</tt>  <tt class="py-line">        <tt class="py-name">new_element</tt><tt class="py-op">.</tt><tt id="link-3530" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3530', 'tail', 'link-981');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TESTTAIL"</tt> </tt>
-<a name="L3375"></a><tt class="py-lineno">3375</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="L3376"></a><tt class="py-lineno">3376</tt>  <tt class="py-line">        <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-3531" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-3531', 'replace', 'link-644');">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="L3377"></a><tt class="py-lineno">3377</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3378"></a><tt class="py-lineno">3378</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="L3379"></a><tt class="py-lineno">3379</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3380"></a><tt class="py-lineno">3380</tt>  <tt class="py-line">            <tt class="py-string">"TESTTEXT"</tt><tt class="py-op">,</tt> </tt>
-<a name="L3381"></a><tt class="py-lineno">3381</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-3532" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3526', 'text', 'link-205');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TESTTEXT"</tt> </tt>
+<a name="L3387"></a><tt class="py-lineno">3387</tt>  <tt class="py-line">        <tt class="py-name">new_element</tt><tt class="py-op">.</tt><tt id="link-3527" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3527', 'tail', 'link-978');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TESTTAIL"</tt> </tt>
+<a name="L3388"></a><tt class="py-lineno">3388</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="L3389"></a><tt class="py-lineno">3389</tt>  <tt class="py-line">        <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-3528" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-3528', 'replace', 'link-641');">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="L3390"></a><tt class="py-lineno">3390</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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">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="L3392"></a><tt class="py-lineno">3392</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3393"></a><tt class="py-lineno">3393</tt>  <tt class="py-line">            <tt class="py-string">"TESTTEXT"</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">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-3529" 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-3532', 'text', 'link-205');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3382"></a><tt class="py-lineno">3382</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3383"></a><tt class="py-lineno">3383</tt>  <tt class="py-line">            <tt class="py-string">"TESTTAIL"</tt><tt class="py-op">,</tt> </tt>
-<a name="L3384"></a><tt class="py-lineno">3384</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-3533" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3533', 'tail', 'link-981');">tail</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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">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="L3387"></a><tt class="py-lineno">3387</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_setslice_all_reversed"></a><div id="ETreeOnlyTestCase.test_setslice_all_reversed-def"><a name="L3388"></a><tt class="py-lineno">3388</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_setslice_all_reversed-toggle" onclick="return toggle('ETreeOnlyTestCase.test_setslice_all_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_reversed">test_setslice_all_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_reversed-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_setslice_all_reversed-expanded"><a name="L3389"></a><tt class="py-lineno">3389</tt>  <tt class="py-line">        <tt id="link-3534" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3529', 'text', 'link-205');">text</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3396"></a><tt class="py-lineno">3396</tt>  <tt class="py-line">            <tt class="py-string">"TESTTAIL"</tt><tt class="py-op">,</tt> </tt>
+<a name="L3397"></a><tt class="py-lineno">3397</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-3530" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3530', 'tail', 'link-978');">tail</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3398"></a><tt class="py-lineno">3398</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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">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="L3400"></a><tt class="py-lineno">3400</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_setslice_all_reversed"></a><div id="ETreeOnlyTestCase.test_setslice_all_reversed-def"><a name="L3401"></a><tt class="py-lineno">3401</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_setslice_all_reversed-toggle" onclick="return toggle('ETreeOnlyTestCase.test_setslice_all_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_reversed">test_setslice_all_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_reversed-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_setslice_all_reversed-expanded"><a name="L3402"></a><tt class="py-lineno">3402</tt>  <tt class="py-line">        <tt id="link-3531" 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-3534', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3535" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3531', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3532" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11071,11 +11067,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3535', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3536" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3532', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3533" 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-3536', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L3390"></a><tt class="py-lineno">3390</tt>  <tt class="py-line">        <tt id="link-3537" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3537', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3538" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3533', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L3403"></a><tt class="py-lineno">3403</tt>  <tt class="py-line">        <tt id="link-3534" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3534', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3535" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11083,41 +11079,41 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3538', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3539" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3539', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
-<a name="L3391"></a><tt class="py-lineno">3391</tt>  <tt class="py-line"> </tt>
-<a name="L3392"></a><tt class="py-lineno">3392</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3540" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3535', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3536" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3536', 'SubElement', 'link-112');">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-3537" 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-3540', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3393"></a><tt class="py-lineno">3393</tt>  <tt class="py-line"> </tt>
-<a name="L3394"></a><tt class="py-lineno">3394</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-3541" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3537', 'Element', 'link-69');">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>
+<a name="L3407"></a><tt class="py-lineno">3407</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-3538" 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-3541', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3395"></a><tt class="py-lineno">3395</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-3542" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3538', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'e'</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">f</tt> <tt class="py-op">=</tt> <tt id="link-3539" 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-3542', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'f'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3396"></a><tt class="py-lineno">3396</tt>  <tt class="py-line">        <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt id="link-3543" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3539', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'f'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3409"></a><tt class="py-lineno">3409</tt>  <tt class="py-line">        <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt id="link-3540" 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-3543', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'g'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3397"></a><tt class="py-lineno">3397</tt>  <tt class="py-line"> </tt>
-<a name="L3398"></a><tt class="py-lineno">3398</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-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="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>
-<a name="L3400"></a><tt class="py-lineno">3400</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="L3401"></a><tt class="py-lineno">3401</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>
-<a name="L3402"></a><tt class="py-lineno">3402</tt>  <tt class="py-line"> </tt>
-<a name="L3403"></a><tt class="py-lineno">3403</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-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="L3404"></a><tt class="py-lineno">3404</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3405"></a><tt class="py-lineno">3405</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="L3406"></a><tt class="py-lineno">3406</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="L3407"></a><tt class="py-lineno">3407</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_setslice_step"></a><div id="ETreeOnlyTestCase.test_setslice_step-def"><a name="L3408"></a><tt class="py-lineno">3408</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="L3409"></a><tt class="py-lineno">3409</tt>  <tt class="py-line">        <tt id="link-3544" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3540', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'g'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3410"></a><tt class="py-lineno">3410</tt>  <tt class="py-line"> </tt>
+<a name="L3411"></a><tt class="py-lineno">3411</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-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="L3412"></a><tt class="py-lineno">3412</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3413"></a><tt class="py-lineno">3413</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="L3414"></a><tt class="py-lineno">3414</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>
+<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">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-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="L3417"></a><tt class="py-lineno">3417</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3418"></a><tt class="py-lineno">3418</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="L3419"></a><tt class="py-lineno">3419</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="L3420"></a><tt class="py-lineno">3420</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_setslice_step"></a><div id="ETreeOnlyTestCase.test_setslice_step-def"><a name="L3421"></a><tt class="py-lineno">3421</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="L3422"></a><tt class="py-lineno">3422</tt>  <tt class="py-line">        <tt id="link-3541" 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-3544', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3545" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3541', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3542" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11125,11 +11121,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3545', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3546" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3542', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3543" 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-3546', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L3410"></a><tt class="py-lineno">3410</tt>  <tt class="py-line">        <tt id="link-3547" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3547', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3548" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3543', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L3423"></a><tt class="py-lineno">3423</tt>  <tt class="py-line">        <tt id="link-3544" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3544', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3545" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11137,36 +11133,36 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3548', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3549" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3549', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
-<a name="L3411"></a><tt class="py-lineno">3411</tt>  <tt class="py-line"> </tt>
-<a name="L3412"></a><tt class="py-lineno">3412</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3550" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3545', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3546" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3546', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
+<a name="L3424"></a><tt class="py-lineno">3424</tt>  <tt class="py-line"> </tt>
+<a name="L3425"></a><tt class="py-lineno">3425</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3547" 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-3550', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</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">b</tt> <tt class="py-op">=</tt> <tt id="link-3551" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3551', 'SubElement', 'link-112');">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="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-3552" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3552', 'SubElement', 'link-112');">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="L3415"></a><tt class="py-lineno">3415</tt>  <tt class="py-line">        <tt class="py-name">d</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-112');">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="L3416"></a><tt class="py-lineno">3416</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-3554" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3554', 'SubElement', 'link-112');">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="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">x</tt> <tt class="py-op">=</tt> <tt id="link-3555" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3547', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</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">b</tt> <tt class="py-op">=</tt> <tt id="link-3548" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3548', 'SubElement', 'link-112');">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="L3427"></a><tt class="py-lineno">3427</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3549" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3549', 'SubElement', 'link-112');">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="L3428"></a><tt class="py-lineno">3428</tt>  <tt class="py-line">        <tt class="py-name">d</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-112');">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="L3429"></a><tt class="py-lineno">3429</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-3551" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3551', 'SubElement', 'link-112');">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="L3430"></a><tt class="py-lineno">3430</tt>  <tt class="py-line"> </tt>
+<a name="L3431"></a><tt class="py-lineno">3431</tt>  <tt class="py-line">        <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt id="link-3552" 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-3555', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</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">y</tt> <tt class="py-op">=</tt> <tt id="link-3556" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3552', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</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">y</tt> <tt class="py-op">=</tt> <tt id="link-3553" 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-3556', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'y'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3420"></a><tt class="py-lineno">3420</tt>  <tt class="py-line"> </tt>
-<a name="L3421"></a><tt class="py-lineno">3421</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="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">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3423"></a><tt class="py-lineno">3423</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="L3424"></a><tt class="py-lineno">3424</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="L3425"></a><tt class="py-lineno">3425</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_setslice_step_negative"></a><div id="ETreeOnlyTestCase.test_setslice_step_negative-def"><a name="L3426"></a><tt class="py-lineno">3426</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="L3427"></a><tt class="py-lineno">3427</tt>  <tt class="py-line">        <tt id="link-3557" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3553', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'y'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3433"></a><tt class="py-lineno">3433</tt>  <tt class="py-line"> </tt>
+<a name="L3434"></a><tt class="py-lineno">3434</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="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">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3436"></a><tt class="py-lineno">3436</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="L3437"></a><tt class="py-lineno">3437</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="L3438"></a><tt class="py-lineno">3438</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_setslice_step_negative"></a><div id="ETreeOnlyTestCase.test_setslice_step_negative-def"><a name="L3439"></a><tt class="py-lineno">3439</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="L3440"></a><tt class="py-lineno">3440</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-3557', 'Element', 'link-69');">Element</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
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3554', 'Element', 'link-69');">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.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11174,11 +11170,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3558', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3559" 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-3');">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-3559', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L3428"></a><tt class="py-lineno">3428</tt>  <tt class="py-line">        <tt id="link-3560" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3560', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3561" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3556', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L3441"></a><tt class="py-lineno">3441</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-112');">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.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11186,36 +11182,36 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3561', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3562" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3562', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
-<a name="L3429"></a><tt class="py-lineno">3429</tt>  <tt class="py-line"> </tt>
-<a name="L3430"></a><tt class="py-lineno">3430</tt>  <tt class="py-line">        <tt class="py-name">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-3558', 'etree', 'link-3');">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-112');">SubElement</a></tt> </tt>
+<a name="L3442"></a><tt class="py-lineno">3442</tt>  <tt class="py-line"> </tt>
+<a name="L3443"></a><tt class="py-lineno">3443</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-3563', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</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-3564" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3564', 'SubElement', 'link-112');">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="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-3565" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3565', 'SubElement', 'link-112');">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">d</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-112');">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="L3434"></a><tt class="py-lineno">3434</tt>  <tt class="py-line">        <tt class="py-name">e</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-112');">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="L3435"></a><tt class="py-lineno">3435</tt>  <tt class="py-line"> </tt>
-<a name="L3436"></a><tt class="py-lineno">3436</tt>  <tt class="py-line">        <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt id="link-3568" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3560', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3444"></a><tt class="py-lineno">3444</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3561" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3561', 'SubElement', 'link-112');">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="L3445"></a><tt class="py-lineno">3445</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3562" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3562', 'SubElement', 'link-112');">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="L3446"></a><tt class="py-lineno">3446</tt>  <tt class="py-line">        <tt class="py-name">d</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-112');">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="L3447"></a><tt class="py-lineno">3447</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-3564" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3564', 'SubElement', 'link-112');">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="L3448"></a><tt class="py-lineno">3448</tt>  <tt class="py-line"> </tt>
+<a name="L3449"></a><tt class="py-lineno">3449</tt>  <tt class="py-line">        <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt id="link-3565" 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-3568', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3437"></a><tt class="py-lineno">3437</tt>  <tt class="py-line">        <tt class="py-name">y</tt> <tt class="py-op">=</tt> <tt id="link-3569" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3565', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3450"></a><tt class="py-lineno">3450</tt>  <tt class="py-line">        <tt class="py-name">y</tt> <tt class="py-op">=</tt> <tt id="link-3566" 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-3569', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'y'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3438"></a><tt class="py-lineno">3438</tt>  <tt class="py-line"> </tt>
-<a name="L3439"></a><tt class="py-lineno">3439</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="L3440"></a><tt class="py-lineno">3440</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3441"></a><tt class="py-lineno">3441</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="L3442"></a><tt class="py-lineno">3442</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="L3443"></a><tt class="py-lineno">3443</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_setslice_step_negative2"></a><div id="ETreeOnlyTestCase.test_setslice_step_negative2-def"><a name="L3444"></a><tt class="py-lineno">3444</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="L3445"></a><tt class="py-lineno">3445</tt>  <tt class="py-line">        <tt id="link-3570" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3566', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'y'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3451"></a><tt class="py-lineno">3451</tt>  <tt class="py-line"> </tt>
+<a name="L3452"></a><tt class="py-lineno">3452</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="L3453"></a><tt class="py-lineno">3453</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3454"></a><tt class="py-lineno">3454</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="L3455"></a><tt class="py-lineno">3455</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="L3456"></a><tt class="py-lineno">3456</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_setslice_step_negative2"></a><div id="ETreeOnlyTestCase.test_setslice_step_negative2-def"><a name="L3457"></a><tt class="py-lineno">3457</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="L3458"></a><tt class="py-lineno">3458</tt>  <tt class="py-line">        <tt id="link-3567" 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-3570', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3571" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3567', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3568" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11223,11 +11219,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3571', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3572" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3568', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3569" 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-3572', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L3446"></a><tt class="py-lineno">3446</tt>  <tt class="py-line">        <tt id="link-3573" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3573', 'SubElement', 'link-112');">SubElement</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
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3569', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L3459"></a><tt class="py-lineno">3459</tt>  <tt class="py-line">        <tt id="link-3570" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3570', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3571" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11235,36 +11231,36 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3574', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3575" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3575', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
-<a name="L3447"></a><tt class="py-lineno">3447</tt>  <tt class="py-line"> </tt>
-<a name="L3448"></a><tt class="py-lineno">3448</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3576" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3571', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3572" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3572', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
+<a name="L3460"></a><tt class="py-lineno">3460</tt>  <tt class="py-line"> </tt>
+<a name="L3461"></a><tt class="py-lineno">3461</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3573" 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-3576', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</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">b</tt> <tt class="py-op">=</tt> <tt id="link-3577" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3577', 'SubElement', 'link-112');">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="L3450"></a><tt class="py-lineno">3450</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3578" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3578', 'SubElement', 'link-112');">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="L3451"></a><tt class="py-lineno">3451</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-3579" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3579', 'SubElement', 'link-112');">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="L3452"></a><tt class="py-lineno">3452</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-3580" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3580', 'SubElement', 'link-112');">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="L3453"></a><tt class="py-lineno">3453</tt>  <tt class="py-line"> </tt>
-<a name="L3454"></a><tt class="py-lineno">3454</tt>  <tt class="py-line">        <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt id="link-3581" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3573', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</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">b</tt> <tt class="py-op">=</tt> <tt id="link-3574" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3574', 'SubElement', 'link-112');">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="L3463"></a><tt class="py-lineno">3463</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3575" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3575', 'SubElement', 'link-112');">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="L3464"></a><tt class="py-lineno">3464</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-3576" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3576', 'SubElement', 'link-112');">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="L3465"></a><tt class="py-lineno">3465</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-3577" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3577', 'SubElement', 'link-112');">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="L3466"></a><tt class="py-lineno">3466</tt>  <tt class="py-line"> </tt>
+<a name="L3467"></a><tt class="py-lineno">3467</tt>  <tt class="py-line">        <tt class="py-name">x</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-3581', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</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">y</tt> <tt class="py-op">=</tt> <tt id="link-3582" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3578', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</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">y</tt> <tt class="py-op">=</tt> <tt id="link-3579" 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-3582', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'y'</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">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="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>
-<a name="L3459"></a><tt class="py-lineno">3459</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="L3460"></a><tt class="py-lineno">3460</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="L3461"></a><tt class="py-lineno">3461</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_setslice_step_overrun"></a><div id="ETreeOnlyTestCase.test_setslice_step_overrun-def"><a name="L3462"></a><tt class="py-lineno">3462</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="L3463"></a><tt class="py-lineno">3463</tt>  <tt class="py-line">        <tt id="link-3583" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3579', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'y'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3469"></a><tt class="py-lineno">3469</tt>  <tt class="py-line"> </tt>
+<a name="L3470"></a><tt class="py-lineno">3470</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="L3471"></a><tt class="py-lineno">3471</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3472"></a><tt class="py-lineno">3472</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="L3473"></a><tt class="py-lineno">3473</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="L3474"></a><tt class="py-lineno">3474</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_setslice_step_overrun"></a><div id="ETreeOnlyTestCase.test_setslice_step_overrun-def"><a name="L3475"></a><tt class="py-lineno">3475</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="L3476"></a><tt class="py-lineno">3476</tt>  <tt class="py-line">        <tt id="link-3580" 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-3583', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3584" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3580', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3581" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11272,11 +11268,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3584', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3585" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3581', 'etree', 'link-3');">etree</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-3585', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L3464"></a><tt class="py-lineno">3464</tt>  <tt class="py-line">        <tt id="link-3586" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3586', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3587" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3582', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L3477"></a><tt class="py-lineno">3477</tt>  <tt class="py-line">        <tt id="link-3583" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3583', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3584" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11284,48 +11280,48 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3587', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3588" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3588', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
-<a name="L3465"></a><tt class="py-lineno">3465</tt>  <tt class="py-line">        <tt class="py-keyword">try</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">slice</tt> </tt>
-<a name="L3467"></a><tt class="py-lineno">3467</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="L3468"></a><tt class="py-lineno">3468</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="L3469"></a><tt class="py-lineno">3469</tt>  <tt class="py-line">            <tt class="py-keyword">return</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-3589" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3584', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3585" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3585', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
+<a name="L3478"></a><tt class="py-lineno">3478</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L3479"></a><tt class="py-lineno">3479</tt>  <tt class="py-line">            <tt class="py-name">slice</tt> </tt>
+<a name="L3480"></a><tt class="py-lineno">3480</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="L3481"></a><tt class="py-lineno">3481</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="L3482"></a><tt class="py-lineno">3482</tt>  <tt class="py-line">            <tt class="py-keyword">return</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-3586" 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-69');">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-3590" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3590', 'SubElement', 'link-112');">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-3591" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3591', 'SubElement', 'link-112');">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 class="py-name">d</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-112');">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="L3475"></a><tt class="py-lineno">3475</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-3593" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3593', 'SubElement', 'link-112');">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="L3476"></a><tt class="py-lineno">3476</tt>  <tt class="py-line"> </tt>
-<a name="L3477"></a><tt class="py-lineno">3477</tt>  <tt class="py-line">        <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt id="link-3594" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3586', 'Element', 'link-69');">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-3587" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3587', 'SubElement', 'link-112');">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-3588" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3588', 'SubElement', 'link-112');">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-3589" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3589', 'SubElement', 'link-112');">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="L3488"></a><tt class="py-lineno">3488</tt>  <tt class="py-line">        <tt class="py-name">e</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-112');">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="L3489"></a><tt class="py-lineno">3489</tt>  <tt class="py-line"> </tt>
+<a name="L3490"></a><tt class="py-lineno">3490</tt>  <tt class="py-line">        <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt id="link-3591" 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-3594', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3478"></a><tt class="py-lineno">3478</tt>  <tt class="py-line">        <tt class="py-name">y</tt> <tt class="py-op">=</tt> <tt id="link-3595" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3591', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3491"></a><tt class="py-lineno">3491</tt>  <tt class="py-line">        <tt class="py-name">y</tt> <tt class="py-op">=</tt> <tt id="link-3592" 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-3595', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'y'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3479"></a><tt class="py-lineno">3479</tt>  <tt class="py-line">        <tt class="py-name">z</tt> <tt class="py-op">=</tt> <tt id="link-3596" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3592', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'y'</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">z</tt> <tt class="py-op">=</tt> <tt id="link-3593" 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-3596', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'z'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3480"></a><tt class="py-lineno">3480</tt>  <tt class="py-line"> </tt>
-<a name="L3481"></a><tt class="py-lineno">3481</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="L3482"></a><tt class="py-lineno">3482</tt>  <tt class="py-line">            <tt class="py-name">ValueError</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">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="L3484"></a><tt class="py-lineno">3484</tt>  <tt class="py-line"> </tt>
-<a name="L3485"></a><tt class="py-lineno">3485</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3486"></a><tt class="py-lineno">3486</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="L3487"></a><tt class="py-lineno">3487</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="L3488"></a><tt class="py-lineno">3488</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_sourceline_XML"></a><div id="ETreeOnlyTestCase.test_sourceline_XML-def"><a name="L3489"></a><tt class="py-lineno">3489</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="L3490"></a><tt class="py-lineno">3490</tt>  <tt class="py-line">        <tt id="link-3597" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3593', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'z'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3493"></a><tt class="py-lineno">3493</tt>  <tt class="py-line"> </tt>
+<a name="L3494"></a><tt class="py-lineno">3494</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="L3495"></a><tt class="py-lineno">3495</tt>  <tt class="py-line">            <tt class="py-name">ValueError</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">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="L3497"></a><tt class="py-lineno">3497</tt>  <tt class="py-line"> </tt>
+<a name="L3498"></a><tt class="py-lineno">3498</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3499"></a><tt class="py-lineno">3499</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="L3500"></a><tt class="py-lineno">3500</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="L3501"></a><tt class="py-lineno">3501</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_sourceline_XML"></a><div id="ETreeOnlyTestCase.test_sourceline_XML-def"><a name="L3502"></a><tt class="py-lineno">3502</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="L3503"></a><tt class="py-lineno">3503</tt>  <tt class="py-line">        <tt id="link-3594" 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-3597', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3598" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3594', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3595" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11333,30 +11329,30 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3598', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3599" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3595', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3596" 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-3599', 'XML', 'link-234');">XML</a></tt> </tt>
-<a name="L3491"></a><tt class="py-lineno">3491</tt>  <tt class="py-line">        <tt id="link-3600" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3600', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3601" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3596', 'XML', 'link-234');">XML</a></tt> </tt>
+<a name="L3504"></a><tt class="py-lineno">3504</tt>  <tt class="py-line">        <tt id="link-3597" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3597', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3598" 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-3601', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3602" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3602', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''&lt;?xml version="1.0"?&gt;</tt> </tt>
-<a name="L3492"></a><tt class="py-lineno">3492</tt>  <tt class="py-line"><tt class="py-string">        &lt;root&gt;&lt;test&gt;</tt> </tt>
-<a name="L3493"></a><tt class="py-lineno">3493</tt>  <tt class="py-line"><tt class="py-string"></tt> </tt>
-<a name="L3494"></a><tt class="py-lineno">3494</tt>  <tt class="py-line"><tt class="py-string">        &lt;bla/&gt;&lt;/test&gt;</tt> </tt>
-<a name="L3495"></a><tt class="py-lineno">3495</tt>  <tt class="py-line"><tt class="py-string">        &lt;/root&gt;</tt> </tt>
-<a name="L3496"></a><tt class="py-lineno">3496</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3497"></a><tt class="py-lineno">3497</tt>  <tt class="py-line"> </tt>
-<a name="L3498"></a><tt class="py-lineno">3498</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3499"></a><tt class="py-lineno">3499</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="L3500"></a><tt class="py-lineno">3500</tt>  <tt class="py-line">            <tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-3603" 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-3603', 'sourceline', 'link-3603');">sourceline</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-3604" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3604', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3605" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3605', 'getiterator', 'link-1578');">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="L3501"></a><tt class="py-lineno">3501</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_large_sourceline_XML"></a><div id="ETreeOnlyTestCase.test_large_sourceline_XML-def"><a name="L3502"></a><tt class="py-lineno">3502</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="L3503"></a><tt class="py-lineno">3503</tt>  <tt class="py-line">        <tt id="link-3606" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3598', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3599" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3599', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''&lt;?xml version="1.0"?&gt;</tt> </tt>
+<a name="L3505"></a><tt class="py-lineno">3505</tt>  <tt class="py-line"><tt class="py-string">        &lt;root&gt;&lt;test&gt;</tt> </tt>
+<a name="L3506"></a><tt class="py-lineno">3506</tt>  <tt class="py-line"><tt class="py-string"></tt> </tt>
+<a name="L3507"></a><tt class="py-lineno">3507</tt>  <tt class="py-line"><tt class="py-string">        &lt;bla/&gt;&lt;/test&gt;</tt> </tt>
+<a name="L3508"></a><tt class="py-lineno">3508</tt>  <tt class="py-line"><tt class="py-string">        &lt;/root&gt;</tt> </tt>
+<a name="L3509"></a><tt class="py-lineno">3509</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt><tt class="py-op">)</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">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3512"></a><tt class="py-lineno">3512</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="L3513"></a><tt class="py-lineno">3513</tt>  <tt class="py-line">            <tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-3600" 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-3600', 'sourceline', 'link-3600');">sourceline</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-3601" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3601', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3602" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3602', 'getiterator', 'link-1575');">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="L3514"></a><tt class="py-lineno">3514</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_large_sourceline_XML"></a><div id="ETreeOnlyTestCase.test_large_sourceline_XML-def"><a name="L3515"></a><tt class="py-lineno">3515</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="L3516"></a><tt class="py-lineno">3516</tt>  <tt class="py-line">        <tt id="link-3603" 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-3606', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3607" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3603', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3604" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11364,21 +11360,21 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3607', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3608" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3604', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3605" 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-3608', 'XML', 'link-234');">XML</a></tt> </tt>
-<a name="L3504"></a><tt class="py-lineno">3504</tt>  <tt class="py-line">        <tt id="link-3609" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3609', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3610" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3605', 'XML', 'link-234');">XML</a></tt> </tt>
+<a name="L3517"></a><tt class="py-lineno">3517</tt>  <tt class="py-line">        <tt id="link-3606" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3606', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3607" 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-3610', 'XML', 'link-234');">XML</a></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-18');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3505"></a><tt class="py-lineno">3505</tt>  <tt class="py-line">            <tt class="py-string">'&lt;?xml version="1.0"?&gt;\n'</tt> </tt>
-<a name="L3506"></a><tt class="py-lineno">3506</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="L3507"></a><tt class="py-lineno">3507</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="L3508"></a><tt class="py-lineno">3508</tt>  <tt class="py-line">            <tt class="py-string">'&lt;br/&gt;\n'</tt> </tt>
-<a name="L3509"></a><tt class="py-lineno">3509</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="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-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3612" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3607', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3608" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3608', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3518"></a><tt class="py-lineno">3518</tt>  <tt class="py-line">            <tt class="py-string">'&lt;?xml version="1.0"?&gt;\n'</tt> </tt>
+<a name="L3519"></a><tt class="py-lineno">3519</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="L3520"></a><tt class="py-lineno">3520</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="L3521"></a><tt class="py-lineno">3521</tt>  <tt class="py-line">            <tt class="py-string">'&lt;br/&gt;\n'</tt> </tt>
+<a name="L3522"></a><tt class="py-lineno">3522</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="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-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3609" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11386,22 +11382,22 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3612', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3613" class="py-name"><a title="lxml.etree.LIBXML_VERSION" class="py-name" href="#" onclick="return doclink('link-3613', 'LIBXML_VERSION', 'link-23');">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="L3512"></a><tt class="py-lineno">3512</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="L3513"></a><tt class="py-lineno">3513</tt>  <tt class="py-line">        <tt class="py-keyword">else</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">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="L3515"></a><tt class="py-lineno">3515</tt>  <tt class="py-line"> </tt>
-<a name="L3516"></a><tt class="py-lineno">3516</tt>  <tt class="py-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-3614" class="py-name"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-3614', 'sourceline', 'link-3603');">sourceline</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-3615" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3615', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3616" 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-3616', 'iter', 'link-3616');">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="L3517"></a><tt class="py-lineno">3517</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_sourceline_parse"></a><div id="ETreeOnlyTestCase.test_sourceline_parse-def"><a name="L3518"></a><tt class="py-lineno">3518</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="L3519"></a><tt class="py-lineno">3519</tt>  <tt class="py-line">        <tt id="link-3617" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3609', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3610" class="py-name"><a title="lxml.etree.LIBXML_VERSION" class="py-name" href="#" onclick="return doclink('link-3610', 'LIBXML_VERSION', 'link-23');">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="L3525"></a><tt class="py-lineno">3525</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="L3526"></a><tt class="py-lineno">3526</tt>  <tt class="py-line">        <tt class="py-keyword">else</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">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="L3528"></a><tt class="py-lineno">3528</tt>  <tt class="py-line"> </tt>
+<a name="L3529"></a><tt class="py-lineno">3529</tt>  <tt class="py-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-3611" class="py-name"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-3611', 'sourceline', 'link-3600');">sourceline</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-3612" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3612', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3613" 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-3613', 'iter', 'link-3613');">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="L3530"></a><tt class="py-lineno">3530</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_sourceline_parse"></a><div id="ETreeOnlyTestCase.test_sourceline_parse-def"><a name="L3531"></a><tt class="py-lineno">3531</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="L3532"></a><tt class="py-lineno">3532</tt>  <tt class="py-line">        <tt id="link-3614" 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-3617', 'parse', 'link-870');">parse</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.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3614', 'parse', 'link-867');">parse</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.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11409,29 +11405,29 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3618', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3619" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3615', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3616" 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-3619', 'parse', 'link-870');">parse</a></tt> </tt>
-<a name="L3520"></a><tt class="py-lineno">3520</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3620" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3616', 'parse', 'link-867');">parse</a></tt> </tt>
+<a name="L3533"></a><tt class="py-lineno">3533</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3617" 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-3620', 'parse', 'link-870');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3621" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-3621', 'fileInTestDir', 'link-6');">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="L3521"></a><tt class="py-lineno">3521</tt>  <tt class="py-line"> </tt>
-<a name="L3522"></a><tt class="py-lineno">3522</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3523"></a><tt class="py-lineno">3523</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="L3524"></a><tt class="py-lineno">3524</tt>  <tt class="py-line">            <tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-3622" class="py-name"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-3622', 'sourceline', 'link-3603');">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-3623" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3623', 'getiterator', 'link-1578');">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="L3525"></a><tt class="py-lineno">3525</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_sourceline_iterparse_end"></a><div id="ETreeOnlyTestCase.test_sourceline_iterparse_end-def"><a name="L3526"></a><tt class="py-lineno">3526</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="L3527"></a><tt class="py-lineno">3527</tt>  <tt class="py-line">        <tt id="link-3624" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-3624', 'iterparse', 'link-895');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3625" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3617', 'parse', 'link-867');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3618" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-3618', 'fileInTestDir', 'link-6');">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="L3534"></a><tt class="py-lineno">3534</tt>  <tt class="py-line"> </tt>
+<a name="L3535"></a><tt class="py-lineno">3535</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3536"></a><tt class="py-lineno">3536</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="L3537"></a><tt class="py-lineno">3537</tt>  <tt class="py-line">            <tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-3619" class="py-name"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-3619', 'sourceline', 'link-3600');">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-3620" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-3620', 'getiterator', 'link-1575');">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="L3538"></a><tt class="py-lineno">3538</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_sourceline_iterparse_end"></a><div id="ETreeOnlyTestCase.test_sourceline_iterparse_end-def"><a name="L3539"></a><tt class="py-lineno">3539</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="L3540"></a><tt class="py-lineno">3540</tt>  <tt class="py-line">        <tt id="link-3621" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-3621', 'iterparse', 'link-892');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3622" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11439,19 +11435,19 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3625', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3626" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-3626', 'iterparse', 'link-895');">iterparse</a></tt> </tt>
-<a name="L3528"></a><tt class="py-lineno">3528</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-3627" class="py-name"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-3627', 'sourceline', 'link-3603');">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="L3529"></a><tt class="py-lineno">3529</tt>  <tt class="py-line">                  <tt id="link-3628" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-3628', 'iterparse', 'link-895');">iterparse</a></tt><tt class="py-op">(</tt><tt id="link-3629" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-3629', 'fileInTestDir', 'link-6');">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="L3530"></a><tt class="py-lineno">3530</tt>  <tt class="py-line"> </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>
-<a name="L3532"></a><tt class="py-lineno">3532</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="L3533"></a><tt class="py-lineno">3533</tt>  <tt class="py-line">            <tt class="py-name">lines</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3534"></a><tt class="py-lineno">3534</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_sourceline_iterparse_start"></a><div id="ETreeOnlyTestCase.test_sourceline_iterparse_start-def"><a name="L3535"></a><tt class="py-lineno">3535</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="L3536"></a><tt class="py-lineno">3536</tt>  <tt class="py-line">        <tt id="link-3630" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-3630', 'iterparse', 'link-895');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3631" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3622', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3623" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-3623', 'iterparse', 'link-892');">iterparse</a></tt> </tt>
+<a name="L3541"></a><tt class="py-lineno">3541</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-3624" class="py-name"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-3624', 'sourceline', 'link-3600');">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="L3542"></a><tt class="py-lineno">3542</tt>  <tt class="py-line">                  <tt id="link-3625" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-3625', 'iterparse', 'link-892');">iterparse</a></tt><tt class="py-op">(</tt><tt id="link-3626" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-3626', 'fileInTestDir', 'link-6');">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="L3543"></a><tt class="py-lineno">3543</tt>  <tt class="py-line"> </tt>
+<a name="L3544"></a><tt class="py-lineno">3544</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3545"></a><tt class="py-lineno">3545</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="L3546"></a><tt class="py-lineno">3546</tt>  <tt class="py-line">            <tt class="py-name">lines</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3547"></a><tt class="py-lineno">3547</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_sourceline_iterparse_start"></a><div id="ETreeOnlyTestCase.test_sourceline_iterparse_start-def"><a name="L3548"></a><tt class="py-lineno">3548</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="L3549"></a><tt class="py-lineno">3549</tt>  <tt class="py-line">        <tt id="link-3627" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-3627', 'iterparse', 'link-892');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3628" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11459,22 +11455,22 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3631', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3632" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-3632', 'iterparse', 'link-895');">iterparse</a></tt> </tt>
-<a name="L3537"></a><tt class="py-lineno">3537</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-3633" class="py-name"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-3633', 'sourceline', 'link-3603');">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="L3538"></a><tt class="py-lineno">3538</tt>  <tt class="py-line">                  <tt id="link-3634" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-3634', 'iterparse', 'link-895');">iterparse</a></tt><tt class="py-op">(</tt><tt id="link-3635" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-3635', 'fileInTestDir', 'link-6');">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="L3539"></a><tt class="py-lineno">3539</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="L3540"></a><tt class="py-lineno">3540</tt>  <tt class="py-line"> </tt>
-<a name="L3541"></a><tt class="py-lineno">3541</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3542"></a><tt class="py-lineno">3542</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="L3543"></a><tt class="py-lineno">3543</tt>  <tt class="py-line">            <tt class="py-name">lines</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_sourceline_element"></a><div id="ETreeOnlyTestCase.test_sourceline_element-def"><a name="L3545"></a><tt class="py-lineno">3545</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="L3546"></a><tt class="py-lineno">3546</tt>  <tt class="py-line">        <tt id="link-3636" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3628', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3629" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-3629', 'iterparse', 'link-892');">iterparse</a></tt> </tt>
+<a name="L3550"></a><tt class="py-lineno">3550</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-3630" class="py-name"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-3630', 'sourceline', 'link-3600');">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="L3551"></a><tt class="py-lineno">3551</tt>  <tt class="py-line">                  <tt id="link-3631" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-3631', 'iterparse', 'link-892');">iterparse</a></tt><tt class="py-op">(</tt><tt id="link-3632" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-3632', 'fileInTestDir', 'link-6');">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="L3552"></a><tt class="py-lineno">3552</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="L3553"></a><tt class="py-lineno">3553</tt>  <tt class="py-line"> </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">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3555"></a><tt class="py-lineno">3555</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="L3556"></a><tt class="py-lineno">3556</tt>  <tt class="py-line">            <tt class="py-name">lines</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3557"></a><tt class="py-lineno">3557</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_sourceline_element"></a><div id="ETreeOnlyTestCase.test_sourceline_element-def"><a name="L3558"></a><tt class="py-lineno">3558</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="L3559"></a><tt class="py-lineno">3559</tt>  <tt class="py-line">        <tt id="link-3633" 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-3636', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3637" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3633', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3634" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11482,11 +11478,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3637', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3638" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3634', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3635" 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-3638', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L3547"></a><tt class="py-lineno">3547</tt>  <tt class="py-line">        <tt id="link-3639" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3639', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3640" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3635', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L3560"></a><tt class="py-lineno">3560</tt>  <tt class="py-line">        <tt id="link-3636" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3636', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3637" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11494,19 +11490,19 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3640', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3641" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3641', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
-<a name="L3548"></a><tt class="py-lineno">3548</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-3642" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3637', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3638" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3638', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
+<a name="L3561"></a><tt class="py-lineno">3561</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-3639" 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-3642', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"test"</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">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-3643" class="py-name"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-3643', 'sourceline', 'link-3603');">sourceline</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3550"></a><tt class="py-lineno">3550</tt>  <tt class="py-line"> </tt>
-<a name="L3551"></a><tt class="py-lineno">3551</tt>  <tt class="py-line">        <tt class="py-name">child</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-112');">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="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-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-3645" class="py-name"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-3645', 'sourceline', 'link-3603');">sourceline</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">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-3646" class="py-name"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-3646', 'sourceline', 'link-3603');">sourceline</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3554"></a><tt class="py-lineno">3554</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="L3555"></a><tt class="py-lineno">3555</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="L3556"></a><tt class="py-lineno">3556</tt>  <tt class="py-line">        <tt id="link-3647" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3639', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"test"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3562"></a><tt class="py-lineno">3562</tt>  <tt class="py-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-3640" class="py-name"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-3640', 'sourceline', 'link-3600');">sourceline</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3563"></a><tt class="py-lineno">3563</tt>  <tt class="py-line"> </tt>
+<a name="L3564"></a><tt class="py-lineno">3564</tt>  <tt class="py-line">        <tt class="py-name">child</tt> <tt class="py-op">=</tt> <tt id="link-3641" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3641', 'SubElement', 'link-112');">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="L3565"></a><tt class="py-lineno">3565</tt>  <tt class="py-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-3642" class="py-name"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-3642', 'sourceline', 'link-3600');">sourceline</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3566"></a><tt class="py-lineno">3566</tt>  <tt class="py-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-3643" class="py-name"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-3643', 'sourceline', 'link-3600');">sourceline</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3567"></a><tt class="py-lineno">3567</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="L3568"></a><tt class="py-lineno">3568</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="L3569"></a><tt class="py-lineno">3569</tt>  <tt class="py-line">        <tt id="link-3644" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11514,7 +11510,7 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3647', 'etree', 'link-3');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3648" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3644', 'etree', 'link-3');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3645" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11522,8 +11518,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3648', 'etree', 'link-3');">etree</a></tt> </tt>
-<a name="L3557"></a><tt class="py-lineno">3557</tt>  <tt class="py-line">        <tt id="link-3649" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3649', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3650" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3645', 'etree', 'link-3');">etree</a></tt> </tt>
+<a name="L3570"></a><tt class="py-lineno">3570</tt>  <tt class="py-line">        <tt id="link-3646" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3646', 'root', 'link-247');">root</a></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.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11531,15 +11527,15 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3650', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3651" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3647', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3648" 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-3651', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3652" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3652', '_bytes', 'link-18');">_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-3653" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-3653', 'base_url', 'link-1686');">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="L3558"></a><tt class="py-lineno">3558</tt>  <tt class="py-line">        <tt id="link-3654" 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-3654', 'docinfo', 'link-3654');">docinfo</a></tt> <tt class="py-op">=</tt> <tt id="link-3655" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3655', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3656" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-3656', 'getroottree', 'link-2696');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3657" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3657', 'docinfo', 'link-3654');">docinfo</a></tt> </tt>
-<a name="L3559"></a><tt class="py-lineno">3559</tt>  <tt class="py-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-3658" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3658', 'docinfo', 'link-3654');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3659" 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-3659', 'URL', 'link-3659');">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="L3560"></a><tt class="py-lineno">3560</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="L3561"></a><tt class="py-lineno">3561</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="L3562"></a><tt class="py-lineno">3562</tt>  <tt class="py-line">        <tt id="link-3660" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3648', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3649" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3649', '_bytes', 'link-18');">_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-3650" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-3650', 'base_url', 'link-1683');">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="L3571"></a><tt class="py-lineno">3571</tt>  <tt class="py-line">        <tt id="link-3651" 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-3651', 'docinfo', 'link-3651');">docinfo</a></tt> <tt class="py-op">=</tt> <tt id="link-3652" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3652', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3653" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-3653', 'getroottree', 'link-2693');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3654" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3654', 'docinfo', 'link-3651');">docinfo</a></tt> </tt>
+<a name="L3572"></a><tt class="py-lineno">3572</tt>  <tt class="py-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.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3655', 'docinfo', 'link-3651');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3656" 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-3656', 'URL', 'link-3656');">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="L3573"></a><tt class="py-lineno">3573</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="L3574"></a><tt class="py-lineno">3574</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="L3575"></a><tt class="py-lineno">3575</tt>  <tt class="py-line">        <tt id="link-3657" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11547,7 +11543,7 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3660', 'etree', 'link-3');">etree</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.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3657', 'etree', 'link-3');">etree</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.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11555,8 +11551,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3661', 'etree', 'link-3');">etree</a></tt> </tt>
-<a name="L3563"></a><tt class="py-lineno">3563</tt>  <tt class="py-line">        <tt id="link-3662" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3662', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3663" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3658', 'etree', 'link-3');">etree</a></tt> </tt>
+<a name="L3576"></a><tt class="py-lineno">3576</tt>  <tt class="py-line">        <tt id="link-3659" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3659', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3660" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11564,17 +11560,17 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3663', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3664" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3660', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3661" 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-3664', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3665" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3665', '_bytes', 'link-18');">_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-3666" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-3666', 'base_url', 'link-1686');">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="L3564"></a><tt class="py-lineno">3564</tt>  <tt class="py-line">        <tt id="link-3667" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3667', 'docinfo', 'link-3654');">docinfo</a></tt> <tt class="py-op">=</tt> <tt id="link-3668" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3668', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3669" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-3669', 'getroottree', 'link-2696');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3670" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3670', 'docinfo', 'link-3654');">docinfo</a></tt> </tt>
-<a name="L3565"></a><tt class="py-lineno">3565</tt>  <tt class="py-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-3671" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3671', 'docinfo', 'link-3654');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3672" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-3672', 'URL', 'link-3659');">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="L3566"></a><tt class="py-lineno">3566</tt>  <tt class="py-line">        <tt id="link-3673" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3673', 'docinfo', 'link-3654');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3674" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-3674', 'URL', 'link-3659');">URL</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"https://secret/url"</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 id="link-3675" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3675', 'docinfo', 'link-3654');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3676" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-3676', 'URL', 'link-3659');">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="L3568"></a><tt class="py-lineno">3568</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="L3569"></a><tt class="py-lineno">3569</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="L3570"></a><tt class="py-lineno">3570</tt>  <tt class="py-line">        <tt id="link-3677" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3661', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3662" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3662', '_bytes', 'link-18');">_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-3663" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-3663', 'base_url', 'link-1683');">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="L3577"></a><tt class="py-lineno">3577</tt>  <tt class="py-line">        <tt id="link-3664" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3664', 'docinfo', 'link-3651');">docinfo</a></tt> <tt class="py-op">=</tt> <tt id="link-3665" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3665', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3666" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-3666', 'getroottree', 'link-2693');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3667" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3667', 'docinfo', 'link-3651');">docinfo</a></tt> </tt>
+<a name="L3578"></a><tt class="py-lineno">3578</tt>  <tt class="py-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-3668" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3668', 'docinfo', 'link-3651');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3669" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-3669', 'URL', 'link-3656');">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="L3579"></a><tt class="py-lineno">3579</tt>  <tt class="py-line">        <tt id="link-3670" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3670', 'docinfo', 'link-3651');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3671" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-3671', 'URL', 'link-3656');">URL</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"https://secret/url"</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-3672" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3672', 'docinfo', 'link-3651');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3673" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-3673', 'URL', 'link-3656');">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="L3581"></a><tt class="py-lineno">3581</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="L3582"></a><tt class="py-lineno">3582</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="L3583"></a><tt class="py-lineno">3583</tt>  <tt class="py-line">        <tt id="link-3674" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11582,7 +11578,7 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3677', 'etree', 'link-3');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3678" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3674', 'etree', 'link-3');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3675" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11590,8 +11586,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3678', 'etree', 'link-3');">etree</a></tt> </tt>
-<a name="L3571"></a><tt class="py-lineno">3571</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3679" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3675', 'etree', 'link-3');">etree</a></tt> </tt>
+<a name="L3584"></a><tt class="py-lineno">3584</tt>  <tt class="py-line">        <tt class="py-name">tree</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.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11599,18 +11595,18 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3679', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3680" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3676', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3677" 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-3680', 'parse', 'link-870');">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-3681" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-3681', 'base_url', 'link-1686');">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="L3572"></a><tt class="py-lineno">3572</tt>  <tt class="py-line">        <tt id="link-3682" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3682', 'docinfo', 'link-3654');">docinfo</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3683" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3683', 'docinfo', 'link-3654');">docinfo</a></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 id="link-3684" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3684', 'docinfo', 'link-3654');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3685" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-3685', 'URL', 'link-3659');">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="L3574"></a><tt class="py-lineno">3574</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="L3575"></a><tt class="py-lineno">3575</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="L3576"></a><tt class="py-lineno">3576</tt>  <tt class="py-line">        <tt id="link-3686" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3677', 'parse', 'link-867');">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-3678" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-3678', 'base_url', 'link-1683');">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="L3585"></a><tt class="py-lineno">3585</tt>  <tt class="py-line">        <tt id="link-3679" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3679', 'docinfo', 'link-3651');">docinfo</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3680" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3680', 'docinfo', 'link-3651');">docinfo</a></tt> </tt>
+<a name="L3586"></a><tt class="py-lineno">3586</tt>  <tt class="py-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-3681" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3681', 'docinfo', 'link-3651');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3682" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-3682', 'URL', 'link-3656');">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="L3587"></a><tt class="py-lineno">3587</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="L3588"></a><tt class="py-lineno">3588</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="L3589"></a><tt class="py-lineno">3589</tt>  <tt class="py-line">        <tt id="link-3683" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11618,7 +11614,7 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3686', 'etree', 'link-3');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3687" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3683', 'etree', 'link-3');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3684" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11626,8 +11622,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3687', 'etree', 'link-3');">etree</a></tt> </tt>
-<a name="L3577"></a><tt class="py-lineno">3577</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3688" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3684', 'etree', 'link-3');">etree</a></tt> </tt>
+<a name="L3590"></a><tt class="py-lineno">3590</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3685" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11635,19 +11631,19 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3688', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3689" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3685', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3686" 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-3689', 'parse', 'link-870');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3690" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-3690', 'fileInTestDir', 'link-6');">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="L3578"></a><tt class="py-lineno">3578</tt>  <tt class="py-line">                           <tt id="link-3691" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-3691', 'base_url', 'link-1686');">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="L3579"></a><tt class="py-lineno">3579</tt>  <tt class="py-line">        <tt id="link-3692" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3692', 'docinfo', 'link-3654');">docinfo</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3693" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3693', 'docinfo', 'link-3654');">docinfo</a></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-3694" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3694', 'docinfo', 'link-3654');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3695" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-3695', 'URL', 'link-3659');">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="L3581"></a><tt class="py-lineno">3581</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="L3582"></a><tt class="py-lineno">3582</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="L3583"></a><tt class="py-lineno">3583</tt>  <tt class="py-line">        <tt id="link-3696" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3686', 'parse', 'link-867');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3687" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-3687', 'fileInTestDir', 'link-6');">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="L3591"></a><tt class="py-lineno">3591</tt>  <tt class="py-line">                           <tt id="link-3688" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-3688', 'base_url', 'link-1683');">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="L3592"></a><tt class="py-lineno">3592</tt>  <tt class="py-line">        <tt id="link-3689" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3689', 'docinfo', 'link-3651');">docinfo</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3690" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3690', 'docinfo', 'link-3651');">docinfo</a></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 id="link-3691" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3691', 'docinfo', 'link-3651');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3692" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-3692', 'URL', 'link-3656');">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="L3594"></a><tt class="py-lineno">3594</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="L3595"></a><tt class="py-lineno">3595</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="L3596"></a><tt class="py-lineno">3596</tt>  <tt class="py-line">        <tt id="link-3693" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11655,7 +11651,7 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3696', 'etree', 'link-3');">etree</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.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3693', 'etree', 'link-3');">etree</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.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11663,8 +11659,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3697', 'etree', 'link-3');">etree</a></tt> </tt>
-<a name="L3584"></a><tt class="py-lineno">3584</tt>  <tt class="py-line">        <tt id="link-3698" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3698', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3699" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3694', 'etree', 'link-3');">etree</a></tt> </tt>
+<a name="L3597"></a><tt class="py-lineno">3597</tt>  <tt class="py-line">        <tt id="link-3695" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3695', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3696" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11672,15 +11668,15 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3699', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3700" class="py-name"><a title="lxml.etree.ErrorDomains.HTML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3696', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3697" 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-3700', 'HTML', 'link-694');">HTML</a></tt><tt class="py-op">(</tt><tt id="link-3701" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3701', '_bytes', 'link-18');">_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-3702" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-3702', 'base_url', 'link-1686');">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="L3585"></a><tt class="py-lineno">3585</tt>  <tt class="py-line">        <tt id="link-3703" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3703', 'docinfo', 'link-3654');">docinfo</a></tt> <tt class="py-op">=</tt> <tt id="link-3704" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3704', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3705" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-3705', 'getroottree', 'link-2696');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3706" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3706', 'docinfo', 'link-3654');">docinfo</a></tt> </tt>
-<a name="L3586"></a><tt class="py-lineno">3586</tt>  <tt class="py-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.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3707', 'docinfo', 'link-3654');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3708" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-3708', 'URL', 'link-3659');">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="L3587"></a><tt class="py-lineno">3587</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_docinfo_public"></a><div id="ETreeOnlyTestCase.test_docinfo_public-def"><a name="L3588"></a><tt class="py-lineno">3588</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="L3589"></a><tt class="py-lineno">3589</tt>  <tt class="py-line">        <tt id="link-3709" class="py-name"><a title="lxml.etree
+lxml.tests.test_css.HTML" class="py-name" href="#" onclick="return doclink('link-3697', 'HTML', 'link-691');">HTML</a></tt><tt class="py-op">(</tt><tt id="link-3698" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3698', '_bytes', 'link-18');">_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-3699" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-3699', 'base_url', 'link-1683');">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="L3598"></a><tt class="py-lineno">3598</tt>  <tt class="py-line">        <tt id="link-3700" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3700', 'docinfo', 'link-3651');">docinfo</a></tt> <tt class="py-op">=</tt> <tt id="link-3701" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3701', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3702" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-3702', 'getroottree', 'link-2693');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3703" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3703', 'docinfo', 'link-3651');">docinfo</a></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 id="link-3704" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3704', 'docinfo', 'link-3651');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3705" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-3705', 'URL', 'link-3656');">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="L3600"></a><tt class="py-lineno">3600</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_docinfo_public"></a><div id="ETreeOnlyTestCase.test_docinfo_public-def"><a name="L3601"></a><tt class="py-lineno">3601</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="L3602"></a><tt class="py-lineno">3602</tt>  <tt class="py-line">        <tt id="link-3706" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11688,7 +11684,7 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3709', 'etree', 'link-3');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3710" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3706', 'etree', 'link-3');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3707" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11696,15 +11692,15 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3710', 'etree', 'link-3');">etree</a></tt> </tt>
-<a name="L3590"></a><tt class="py-lineno">3590</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="L3591"></a><tt class="py-lineno">3591</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="L3592"></a><tt class="py-lineno">3592</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="L3593"></a><tt class="py-lineno">3593</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="L3594"></a><tt class="py-lineno">3594</tt>  <tt class="py-line"> </tt>
-<a name="L3595"></a><tt class="py-lineno">3595</tt>  <tt class="py-line">        <tt id="link-3711" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3711', 'xml', 'link-361');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-3712" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3712', '_bytes', 'link-18');">_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="L3596"></a><tt class="py-lineno">3596</tt>  <tt class="py-line"> </tt>
-<a name="L3597"></a><tt class="py-lineno">3597</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3713" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3707', 'etree', 'link-3');">etree</a></tt> </tt>
+<a name="L3603"></a><tt class="py-lineno">3603</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="L3604"></a><tt class="py-lineno">3604</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="L3605"></a><tt class="py-lineno">3605</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="L3606"></a><tt class="py-lineno">3606</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="L3607"></a><tt class="py-lineno">3607</tt>  <tt class="py-line"> </tt>
+<a name="L3608"></a><tt class="py-lineno">3608</tt>  <tt class="py-line">        <tt id="link-3708" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3708', 'xml', 'link-358');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-3709" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3709', '_bytes', 'link-18');">_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="L3609"></a><tt class="py-lineno">3609</tt>  <tt class="py-line"> </tt>
+<a name="L3610"></a><tt class="py-lineno">3610</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3710" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11712,26 +11708,26 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3713', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3714" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3710', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3711" 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-3714', 'parse', 'link-870');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-3715" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3715', 'xml', 'link-361');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3598"></a><tt class="py-lineno">3598</tt>  <tt class="py-line">        <tt id="link-3716" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3716', 'docinfo', 'link-3654');">docinfo</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3717" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3717', 'docinfo', 'link-3654');">docinfo</a></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 id="link-3718" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3718', 'docinfo', 'link-3654');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3719" class="py-name"><a title="lxml.etree.DocInfo.encoding
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3711', 'parse', 'link-867');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-3712" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3712', 'xml', 'link-358');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3611"></a><tt class="py-lineno">3611</tt>  <tt class="py-line">        <tt id="link-3713" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3713', 'docinfo', 'link-3651');">docinfo</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3714" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3714', 'docinfo', 'link-3651');">docinfo</a></tt> </tt>
+<a name="L3612"></a><tt class="py-lineno">3612</tt>  <tt class="py-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-3715" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3715', 'docinfo', 'link-3651');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3716" class="py-name"><a title="lxml.etree.DocInfo.encoding
 lxml.tests.selftest.encoding
-lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-3719', 'encoding', 'link-1042');">encoding</a></tt><tt class="py-op">,</tt>    <tt class="py-string">"ascii"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3600"></a><tt class="py-lineno">3600</tt>  <tt class="py-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-3720" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3720', 'docinfo', 'link-3654');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3721" 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-3721', 'xml_version', 'link-3721');">xml_version</a></tt><tt class="py-op">,</tt> <tt class="py-string">"1.0"</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3722" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3722', 'docinfo', 'link-3654');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3723" 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-3723', 'public_id', 'link-3723');">public_id</a></tt><tt class="py-op">,</tt>   <tt class="py-name">pub_id</tt><tt class="py-op">)</tt> </tt>
-<a name="L3602"></a><tt class="py-lineno">3602</tt>  <tt class="py-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-3724" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3724', 'docinfo', 'link-3654');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3725" 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-3725', 'system_url', 'link-3725');">system_url</a></tt><tt class="py-op">,</tt>  <tt class="py-name">sys_id</tt><tt class="py-op">)</tt> </tt>
-<a name="L3603"></a><tt class="py-lineno">3603</tt>  <tt class="py-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-3726" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3726', 'docinfo', 'link-3654');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3727" 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-3727', 'root_name', 'link-3727');">root_name</a></tt><tt class="py-op">,</tt>   <tt class="py-string">'html'</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3728" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3728', 'docinfo', 'link-3654');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3729" 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-3729', 'doctype', 'link-3729');">doctype</a></tt><tt class="py-op">,</tt> <tt class="py-name">doctype_string</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3605"></a><tt class="py-lineno">3605</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_docinfo_system"></a><div id="ETreeOnlyTestCase.test_docinfo_system-def"><a name="L3606"></a><tt class="py-lineno">3606</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="L3607"></a><tt class="py-lineno">3607</tt>  <tt class="py-line">        <tt id="link-3730" class="py-name"><a title="lxml.etree
+lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-3716', 'encoding', 'link-1039');">encoding</a></tt><tt class="py-op">,</tt>    <tt class="py-string">"ascii"</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">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3717" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3717', 'docinfo', 'link-3651');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3718" 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-3718', 'xml_version', 'link-3718');">xml_version</a></tt><tt class="py-op">,</tt> <tt class="py-string">"1.0"</tt><tt class="py-op">)</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 id="link-3719" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3719', 'docinfo', 'link-3651');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3720" 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-3720', 'public_id', 'link-3720');">public_id</a></tt><tt class="py-op">,</tt>   <tt class="py-name">pub_id</tt><tt class="py-op">)</tt> </tt>
+<a name="L3615"></a><tt class="py-lineno">3615</tt>  <tt class="py-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-3721" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3721', 'docinfo', 'link-3651');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3722" 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-3722', 'system_url', 'link-3722');">system_url</a></tt><tt class="py-op">,</tt>  <tt class="py-name">sys_id</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">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3723" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3723', 'docinfo', 'link-3651');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3724" 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-3724', 'root_name', 'link-3724');">root_name</a></tt><tt class="py-op">,</tt>   <tt class="py-string">'html'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3617"></a><tt class="py-lineno">3617</tt>  <tt class="py-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-3725" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3725', 'docinfo', 'link-3651');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3726" 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-3726', 'doctype', 'link-3726');">doctype</a></tt><tt class="py-op">,</tt> <tt class="py-name">doctype_string</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3618"></a><tt class="py-lineno">3618</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_docinfo_system"></a><div id="ETreeOnlyTestCase.test_docinfo_system-def"><a name="L3619"></a><tt class="py-lineno">3619</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="L3620"></a><tt class="py-lineno">3620</tt>  <tt class="py-line">        <tt id="link-3727" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11739,7 +11735,7 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3730', 'etree', 'link-3');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3731" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3727', 'etree', 'link-3');">etree</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.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11747,13 +11743,13 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3731', 'etree', 'link-3');">etree</a></tt> </tt>
-<a name="L3608"></a><tt class="py-lineno">3608</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="L3609"></a><tt class="py-lineno">3609</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="L3610"></a><tt class="py-lineno">3610</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="L3611"></a><tt class="py-lineno">3611</tt>  <tt class="py-line">        <tt id="link-3732" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3732', 'xml', 'link-361');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-3733" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3733', '_bytes', 'link-18');">_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="L3612"></a><tt class="py-lineno">3612</tt>  <tt class="py-line"> </tt>
-<a name="L3613"></a><tt class="py-lineno">3613</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3734" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3728', 'etree', 'link-3');">etree</a></tt> </tt>
+<a name="L3621"></a><tt class="py-lineno">3621</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="L3622"></a><tt class="py-lineno">3622</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="L3623"></a><tt class="py-lineno">3623</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="L3624"></a><tt class="py-lineno">3624</tt>  <tt class="py-line">        <tt id="link-3729" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3729', 'xml', 'link-358');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-3730" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3730', '_bytes', 'link-18');">_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="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">tree</tt> <tt class="py-op">=</tt> <tt id="link-3731" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11761,26 +11757,26 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3734', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3735" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3731', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3732" 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-3735', 'parse', 'link-870');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-3736" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3736', 'xml', 'link-361');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3614"></a><tt class="py-lineno">3614</tt>  <tt class="py-line">        <tt id="link-3737" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3737', 'docinfo', 'link-3654');">docinfo</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3738" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3738', 'docinfo', 'link-3654');">docinfo</a></tt> </tt>
-<a name="L3615"></a><tt class="py-lineno">3615</tt>  <tt class="py-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-3739" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3739', 'docinfo', 'link-3654');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3740" class="py-name"><a title="lxml.etree.DocInfo.encoding
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3732', 'parse', 'link-867');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-3733" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3733', 'xml', 'link-358');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3627"></a><tt class="py-lineno">3627</tt>  <tt class="py-line">        <tt id="link-3734" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3734', 'docinfo', 'link-3651');">docinfo</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3735" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3735', 'docinfo', 'link-3651');">docinfo</a></tt> </tt>
+<a name="L3628"></a><tt class="py-lineno">3628</tt>  <tt class="py-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-3736" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3736', 'docinfo', 'link-3651');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3737" class="py-name"><a title="lxml.etree.DocInfo.encoding
 lxml.tests.selftest.encoding
-lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-3740', 'encoding', 'link-1042');">encoding</a></tt><tt class="py-op">,</tt>    <tt class="py-string">"UTF-8"</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">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3741" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3741', 'docinfo', 'link-3654');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3742" class="py-name"><a title="lxml.etree.DocInfo.xml_version" class="py-name" href="#" onclick="return doclink('link-3742', 'xml_version', 'link-3721');">xml_version</a></tt><tt class="py-op">,</tt> <tt class="py-string">"1.0"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3617"></a><tt class="py-lineno">3617</tt>  <tt class="py-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-3743" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3743', 'docinfo', 'link-3654');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3744" class="py-name"><a title="lxml.etree.DocInfo.public_id" class="py-name" href="#" onclick="return doclink('link-3744', 'public_id', 'link-3723');">public_id</a></tt><tt class="py-op">,</tt>   <tt class="py-name">None</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3745" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3745', 'docinfo', 'link-3654');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3746" class="py-name"><a title="lxml.etree.DTD.system_url
-lxml.etree.DocInfo.system_url" class="py-name" href="#" onclick="return doclink('link-3746', 'system_url', 'link-3725');">system_url</a></tt><tt class="py-op">,</tt>  <tt class="py-name">sys_id</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3747" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3747', 'docinfo', 'link-3654');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3748" class="py-name"><a title="lxml.etree.DocInfo.root_name" class="py-name" href="#" onclick="return doclink('link-3748', 'root_name', 'link-3727');">root_name</a></tt><tt class="py-op">,</tt>   <tt class="py-string">'html'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3620"></a><tt class="py-lineno">3620</tt>  <tt class="py-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-3749" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3749', 'docinfo', 'link-3654');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3750" class="py-name"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-3750', 'doctype', 'link-3729');">doctype</a></tt><tt class="py-op">,</tt> <tt class="py-name">doctype_string</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3621"></a><tt class="py-lineno">3621</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_docinfo_empty"></a><div id="ETreeOnlyTestCase.test_docinfo_empty-def"><a name="L3622"></a><tt class="py-lineno">3622</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="L3623"></a><tt class="py-lineno">3623</tt>  <tt class="py-line">        <tt id="link-3751" class="py-name"><a title="lxml.etree
+lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-3737', 'encoding', 'link-1039');">encoding</a></tt><tt class="py-op">,</tt>    <tt class="py-string">"UTF-8"</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3738" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3738', 'docinfo', 'link-3651');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3739" class="py-name"><a title="lxml.etree.DocInfo.xml_version" class="py-name" href="#" onclick="return doclink('link-3739', 'xml_version', 'link-3718');">xml_version</a></tt><tt class="py-op">,</tt> <tt class="py-string">"1.0"</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 id="link-3740" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3740', 'docinfo', 'link-3651');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3741" class="py-name"><a title="lxml.etree.DocInfo.public_id" class="py-name" href="#" onclick="return doclink('link-3741', 'public_id', 'link-3720');">public_id</a></tt><tt class="py-op">,</tt>   <tt class="py-name">None</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 id="link-3742" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3742', 'docinfo', 'link-3651');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3743" class="py-name"><a title="lxml.etree.DTD.system_url
+lxml.etree.DocInfo.system_url" class="py-name" href="#" onclick="return doclink('link-3743', 'system_url', 'link-3722');">system_url</a></tt><tt class="py-op">,</tt>  <tt class="py-name">sys_id</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3744" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3744', 'docinfo', 'link-3651');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3745" class="py-name"><a title="lxml.etree.DocInfo.root_name" class="py-name" href="#" onclick="return doclink('link-3745', 'root_name', 'link-3724');">root_name</a></tt><tt class="py-op">,</tt>   <tt class="py-string">'html'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3633"></a><tt class="py-lineno">3633</tt>  <tt class="py-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-3746" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3746', 'docinfo', 'link-3651');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3747" class="py-name"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-3747', 'doctype', 'link-3726');">doctype</a></tt><tt class="py-op">,</tt> <tt class="py-name">doctype_string</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3634"></a><tt class="py-lineno">3634</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_docinfo_empty"></a><div id="ETreeOnlyTestCase.test_docinfo_empty-def"><a name="L3635"></a><tt class="py-lineno">3635</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="L3636"></a><tt class="py-lineno">3636</tt>  <tt class="py-line">        <tt id="link-3748" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11788,7 +11784,7 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3751', 'etree', 'link-3');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3752" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3748', 'etree', 'link-3');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3749" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11796,9 +11792,9 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3752', 'etree', 'link-3');">etree</a></tt> </tt>
-<a name="L3624"></a><tt class="py-lineno">3624</tt>  <tt class="py-line">        <tt id="link-3753" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3753', 'xml', 'link-361');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-3754" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3754', '_bytes', 'link-18');">_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="L3625"></a><tt class="py-lineno">3625</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
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3749', 'etree', 'link-3');">etree</a></tt> </tt>
+<a name="L3637"></a><tt class="py-lineno">3637</tt>  <tt class="py-line">        <tt id="link-3750" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3750', 'xml', 'link-358');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-3751" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3751', '_bytes', 'link-18');">_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="L3638"></a><tt class="py-lineno">3638</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
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11806,26 +11802,26 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3755', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3756" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3752', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3753" 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-3756', 'parse', 'link-870');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-3757" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3757', 'xml', 'link-361');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3626"></a><tt class="py-lineno">3626</tt>  <tt class="py-line">        <tt id="link-3758" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3758', 'docinfo', 'link-3654');">docinfo</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3759" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3759', 'docinfo', 'link-3654');">docinfo</a></tt> </tt>
-<a name="L3627"></a><tt class="py-lineno">3627</tt>  <tt class="py-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-3760" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3760', 'docinfo', 'link-3654');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3761" class="py-name"><a title="lxml.etree.DocInfo.encoding
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3753', 'parse', 'link-867');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-3754" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3754', 'xml', 'link-358');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3639"></a><tt class="py-lineno">3639</tt>  <tt class="py-line">        <tt id="link-3755" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3755', 'docinfo', 'link-3651');">docinfo</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3756" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3756', 'docinfo', 'link-3651');">docinfo</a></tt> </tt>
+<a name="L3640"></a><tt class="py-lineno">3640</tt>  <tt class="py-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-3757" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3757', 'docinfo', 'link-3651');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3758" class="py-name"><a title="lxml.etree.DocInfo.encoding
 lxml.tests.selftest.encoding
-lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-3761', 'encoding', 'link-1042');">encoding</a></tt><tt class="py-op">,</tt>    <tt class="py-string">"UTF-8"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3628"></a><tt class="py-lineno">3628</tt>  <tt class="py-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-3762" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3762', 'docinfo', 'link-3654');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3763" class="py-name"><a title="lxml.etree.DocInfo.xml_version" class="py-name" href="#" onclick="return doclink('link-3763', 'xml_version', 'link-3721');">xml_version</a></tt><tt class="py-op">,</tt> <tt class="py-string">"1.0"</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3764" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3764', 'docinfo', 'link-3654');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3765" class="py-name"><a title="lxml.etree.DocInfo.public_id" class="py-name" href="#" onclick="return doclink('link-3765', 'public_id', 'link-3723');">public_id</a></tt><tt class="py-op">,</tt>   <tt class="py-name">None</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 id="link-3766" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3766', 'docinfo', 'link-3654');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3767" class="py-name"><a title="lxml.etree.DTD.system_url
-lxml.etree.DocInfo.system_url" class="py-name" href="#" onclick="return doclink('link-3767', 'system_url', 'link-3725');">system_url</a></tt><tt class="py-op">,</tt>  <tt class="py-name">None</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 id="link-3768" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3768', 'docinfo', 'link-3654');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3769" class="py-name"><a title="lxml.etree.DocInfo.root_name" class="py-name" href="#" onclick="return doclink('link-3769', 'root_name', 'link-3727');">root_name</a></tt><tt class="py-op">,</tt>   <tt class="py-string">'html'</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3770" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3770', 'docinfo', 'link-3654');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3771" class="py-name"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-3771', 'doctype', 'link-3729');">doctype</a></tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3633"></a><tt class="py-lineno">3633</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_docinfo_name_only"></a><div id="ETreeOnlyTestCase.test_docinfo_name_only-def"><a name="L3634"></a><tt class="py-lineno">3634</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="L3635"></a><tt class="py-lineno">3635</tt>  <tt class="py-line">        <tt id="link-3772" class="py-name"><a title="lxml.etree
+lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-3758', 'encoding', 'link-1039');">encoding</a></tt><tt class="py-op">,</tt>    <tt class="py-string">"UTF-8"</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3759" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3759', 'docinfo', 'link-3651');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3760" class="py-name"><a title="lxml.etree.DocInfo.xml_version" class="py-name" href="#" onclick="return doclink('link-3760', 'xml_version', 'link-3718');">xml_version</a></tt><tt class="py-op">,</tt> <tt class="py-string">"1.0"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3642"></a><tt class="py-lineno">3642</tt>  <tt class="py-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-3761" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3761', 'docinfo', 'link-3651');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3762" class="py-name"><a title="lxml.etree.DocInfo.public_id" class="py-name" href="#" onclick="return doclink('link-3762', 'public_id', 'link-3720');">public_id</a></tt><tt class="py-op">,</tt>   <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<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 class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3763" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3763', 'docinfo', 'link-3651');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3764" class="py-name"><a title="lxml.etree.DTD.system_url
+lxml.etree.DocInfo.system_url" class="py-name" href="#" onclick="return doclink('link-3764', 'system_url', 'link-3722');">system_url</a></tt><tt class="py-op">,</tt>  <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L3644"></a><tt class="py-lineno">3644</tt>  <tt class="py-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-3765" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3765', 'docinfo', 'link-3651');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3766" class="py-name"><a title="lxml.etree.DocInfo.root_name" class="py-name" href="#" onclick="return doclink('link-3766', 'root_name', 'link-3724');">root_name</a></tt><tt class="py-op">,</tt>   <tt class="py-string">'html'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3645"></a><tt class="py-lineno">3645</tt>  <tt class="py-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-3767" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3767', 'docinfo', 'link-3651');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3768" class="py-name"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-3768', 'doctype', 'link-3726');">doctype</a></tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3646"></a><tt class="py-lineno">3646</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_docinfo_name_only"></a><div id="ETreeOnlyTestCase.test_docinfo_name_only-def"><a name="L3647"></a><tt class="py-lineno">3647</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="L3648"></a><tt class="py-lineno">3648</tt>  <tt class="py-line">        <tt id="link-3769" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11833,7 +11829,7 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3772', 'etree', 'link-3');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3773" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3769', 'etree', 'link-3');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3770" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11841,9 +11837,9 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3773', 'etree', 'link-3');">etree</a></tt> </tt>
-<a name="L3636"></a><tt class="py-lineno">3636</tt>  <tt class="py-line">        <tt id="link-3774" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3774', 'xml', 'link-361');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-3775" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3775', '_bytes', 'link-18');">_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="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-3776" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3770', 'etree', 'link-3');">etree</a></tt> </tt>
+<a name="L3649"></a><tt class="py-lineno">3649</tt>  <tt class="py-line">        <tt id="link-3771" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3771', 'xml', 'link-358');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-3772" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3772', '_bytes', 'link-18');">_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="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-3773" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11851,26 +11847,26 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3776', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3777" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3773', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3774" 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-3777', 'parse', 'link-870');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-3778" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3778', 'xml', 'link-361');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3638"></a><tt class="py-lineno">3638</tt>  <tt class="py-line">        <tt id="link-3779" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3779', 'docinfo', 'link-3654');">docinfo</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.docinfo" class="py-name" href="#" onclick="return doclink('link-3780', 'docinfo', 'link-3654');">docinfo</a></tt> </tt>
-<a name="L3639"></a><tt class="py-lineno">3639</tt>  <tt class="py-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-3781" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3781', 'docinfo', 'link-3654');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3782" class="py-name"><a title="lxml.etree.DocInfo.encoding
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3774', 'parse', 'link-867');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-3775" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3775', 'xml', 'link-358');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3651"></a><tt class="py-lineno">3651</tt>  <tt class="py-line">        <tt id="link-3776" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3776', 'docinfo', 'link-3651');">docinfo</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3777" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3777', 'docinfo', 'link-3651');">docinfo</a></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-3778" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3778', 'docinfo', 'link-3651');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3779" class="py-name"><a title="lxml.etree.DocInfo.encoding
 lxml.tests.selftest.encoding
-lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-3782', 'encoding', 'link-1042');">encoding</a></tt><tt class="py-op">,</tt>    <tt class="py-string">"UTF-8"</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3783" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3783', 'docinfo', 'link-3654');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3784" class="py-name"><a title="lxml.etree.DocInfo.xml_version" class="py-name" href="#" onclick="return doclink('link-3784', 'xml_version', 'link-3721');">xml_version</a></tt><tt class="py-op">,</tt> <tt class="py-string">"1.0"</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3785" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3785', 'docinfo', 'link-3654');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3786" class="py-name"><a title="lxml.etree.DocInfo.public_id" class="py-name" href="#" onclick="return doclink('link-3786', 'public_id', 'link-3723');">public_id</a></tt><tt class="py-op">,</tt>   <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L3642"></a><tt class="py-lineno">3642</tt>  <tt class="py-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-3787" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3787', 'docinfo', 'link-3654');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3788" class="py-name"><a title="lxml.etree.DTD.system_url
-lxml.etree.DocInfo.system_url" class="py-name" href="#" onclick="return doclink('link-3788', 'system_url', 'link-3725');">system_url</a></tt><tt class="py-op">,</tt>  <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<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 class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3789" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3789', 'docinfo', 'link-3654');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3790" class="py-name"><a title="lxml.etree.DocInfo.root_name" class="py-name" href="#" onclick="return doclink('link-3790', 'root_name', 'link-3727');">root_name</a></tt><tt class="py-op">,</tt>   <tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3644"></a><tt class="py-lineno">3644</tt>  <tt class="py-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-3791" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3791', 'docinfo', 'link-3654');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3792" class="py-name"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-3792', 'doctype', 'link-3729');">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="L3645"></a><tt class="py-lineno">3645</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="L3646"></a><tt class="py-lineno">3646</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="L3647"></a><tt class="py-lineno">3647</tt>  <tt class="py-line">        <tt id="link-3793" class="py-name"><a title="lxml.etree
+lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-3779', 'encoding', 'link-1039');">encoding</a></tt><tt class="py-op">,</tt>    <tt class="py-string">"UTF-8"</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3780" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3780', 'docinfo', 'link-3651');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3781" class="py-name"><a title="lxml.etree.DocInfo.xml_version" class="py-name" href="#" onclick="return doclink('link-3781', 'xml_version', 'link-3718');">xml_version</a></tt><tt class="py-op">,</tt> <tt class="py-string">"1.0"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3654"></a><tt class="py-lineno">3654</tt>  <tt class="py-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-3782" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3782', 'docinfo', 'link-3651');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3783" class="py-name"><a title="lxml.etree.DocInfo.public_id" class="py-name" href="#" onclick="return doclink('link-3783', 'public_id', 'link-3720');">public_id</a></tt><tt class="py-op">,</tt>   <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L3655"></a><tt class="py-lineno">3655</tt>  <tt class="py-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.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3784', 'docinfo', 'link-3651');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3785" class="py-name"><a title="lxml.etree.DTD.system_url
+lxml.etree.DocInfo.system_url" class="py-name" href="#" onclick="return doclink('link-3785', 'system_url', 'link-3722');">system_url</a></tt><tt class="py-op">,</tt>  <tt class="py-name">None</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3786" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3786', 'docinfo', 'link-3651');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3787" class="py-name"><a title="lxml.etree.DocInfo.root_name" class="py-name" href="#" onclick="return doclink('link-3787', 'root_name', 'link-3724');">root_name</a></tt><tt class="py-op">,</tt>   <tt class="py-string">'root'</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3788" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3788', 'docinfo', 'link-3651');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3789" class="py-name"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-3789', 'doctype', 'link-3726');">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="L3658"></a><tt class="py-lineno">3658</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="L3659"></a><tt class="py-lineno">3659</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="L3660"></a><tt class="py-lineno">3660</tt>  <tt class="py-line">        <tt id="link-3790" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11878,7 +11874,7 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3793', 'etree', 'link-3');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3794" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3790', 'etree', 'link-3');">etree</a></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
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11886,9 +11882,9 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3794', 'etree', 'link-3');">etree</a></tt> </tt>
-<a name="L3648"></a><tt class="py-lineno">3648</tt>  <tt class="py-line">        <tt id="link-3795" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3795', 'xml', 'link-361');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-3796" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3796', '_bytes', 'link-18');">_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="L3649"></a><tt class="py-lineno">3649</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3797" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3791', 'etree', 'link-3');">etree</a></tt> </tt>
+<a name="L3661"></a><tt class="py-lineno">3661</tt>  <tt class="py-line">        <tt id="link-3792" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3792', 'xml', 'link-358');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-3793" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3793', '_bytes', 'link-18');">_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="L3662"></a><tt class="py-lineno">3662</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3794" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11896,14 +11892,14 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3797', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3798" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3794', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3795" 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-3798', 'parse', 'link-870');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-3799" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3799', 'xml', 'link-361');">xml</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3800" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3800', 'xml', 'link-361');">xml</a></tt><tt class="py-op">,</tt> <tt id="link-3801" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3795', 'parse', 'link-867');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-3796" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3796', 'xml', 'link-358');">xml</a></tt><tt class="py-op">)</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3797" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3797', 'xml', 'link-358');">xml</a></tt><tt class="py-op">,</tt> <tt id="link-3798" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11911,11 +11907,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3801', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3802" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3802', 'tostring', 'link-237');">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="L3651"></a><tt class="py-lineno">3651</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_doctype_output_override"></a><div id="ETreeOnlyTestCase.test_doctype_output_override-def"><a name="L3652"></a><tt class="py-lineno">3652</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="L3653"></a><tt class="py-lineno">3653</tt>  <tt class="py-line">        <tt id="link-3803" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3798', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3799" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3799', 'tostring', 'link-237');">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="L3664"></a><tt class="py-lineno">3664</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_doctype_output_override"></a><div id="ETreeOnlyTestCase.test_doctype_output_override-def"><a name="L3665"></a><tt class="py-lineno">3665</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="L3666"></a><tt class="py-lineno">3666</tt>  <tt class="py-line">        <tt id="link-3800" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11923,7 +11919,7 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3803', 'etree', 'link-3');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3804" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3800', 'etree', 'link-3');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3801" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11931,13 +11927,13 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3804', 'etree', 'link-3');">etree</a></tt> </tt>
-<a name="L3654"></a><tt class="py-lineno">3654</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="L3655"></a><tt class="py-lineno">3655</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="L3656"></a><tt class="py-lineno">3656</tt>  <tt class="py-line">        <tt class="py-name">doctype_string</tt> <tt class="py-op">=</tt> <tt id="link-3805" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3805', '_bytes', 'link-18');">_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="L3657"></a><tt class="py-lineno">3657</tt>  <tt class="py-line"> </tt>
-<a name="L3658"></a><tt class="py-lineno">3658</tt>  <tt class="py-line">        <tt id="link-3806" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3806', 'xml', 'link-361');">xml</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-18');">_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="L3659"></a><tt class="py-lineno">3659</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3808" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3801', 'etree', 'link-3');">etree</a></tt> </tt>
+<a name="L3667"></a><tt class="py-lineno">3667</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="L3668"></a><tt class="py-lineno">3668</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="L3669"></a><tt class="py-lineno">3669</tt>  <tt class="py-line">        <tt class="py-name">doctype_string</tt> <tt class="py-op">=</tt> <tt id="link-3802" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3802', '_bytes', 'link-18');">_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="L3670"></a><tt class="py-lineno">3670</tt>  <tt class="py-line"> </tt>
+<a name="L3671"></a><tt class="py-lineno">3671</tt>  <tt class="py-line">        <tt id="link-3803" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3803', 'xml', 'link-358');">xml</a></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-18');">_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="L3672"></a><tt class="py-lineno">3672</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3805" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11945,15 +11941,15 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3808', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3809" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3805', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3806" 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-3809', 'parse', 'link-870');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-3810" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3810', 'xml', 'link-361');">xml</a></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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3811" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3811', 'xml', 'link-361');">xml</a></tt><tt class="py-op">.</tt><tt id="link-3812" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-3812', 'replace', 'link-644');">replace</a></tt><tt class="py-op">(</tt><tt id="link-3813" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3813', '_bytes', 'link-18');">_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="L3661"></a><tt class="py-lineno">3661</tt>  <tt class="py-line">                          <tt id="link-3814" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3806', 'parse', 'link-867');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-3807" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3807', 'xml', 'link-358');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3673"></a><tt class="py-lineno">3673</tt>  <tt class="py-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-3808" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3808', 'xml', 'link-358');">xml</a></tt><tt class="py-op">.</tt><tt id="link-3809" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-3809', 'replace', 'link-641');">replace</a></tt><tt class="py-op">(</tt><tt id="link-3810" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3810', '_bytes', 'link-18');">_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="L3674"></a><tt class="py-lineno">3674</tt>  <tt class="py-line">                          <tt id="link-3811" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11961,11 +11957,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3814', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3815" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3815', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-3816" class="py-name"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-3816', 'doctype', 'link-3729');">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="L3662"></a><tt class="py-lineno">3662</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_xml_base"></a><div id="ETreeOnlyTestCase.test_xml_base-def"><a name="L3663"></a><tt class="py-lineno">3663</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="L3664"></a><tt class="py-lineno">3664</tt>  <tt class="py-line">        <tt id="link-3817" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3811', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3812" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3812', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-3813" class="py-name"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-3813', 'doctype', 'link-3726');">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="L3675"></a><tt class="py-lineno">3675</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_xml_base"></a><div id="ETreeOnlyTestCase.test_xml_base-def"><a name="L3676"></a><tt class="py-lineno">3676</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="L3677"></a><tt class="py-lineno">3677</tt>  <tt class="py-line">        <tt id="link-3814" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11973,7 +11969,7 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3817', 'etree', 'link-3');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3818" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3814', 'etree', 'link-3');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3815" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11981,8 +11977,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3818', 'etree', 'link-3');">etree</a></tt> </tt>
-<a name="L3665"></a><tt class="py-lineno">3665</tt>  <tt class="py-line">        <tt id="link-3819" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3819', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3820" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3815', 'etree', 'link-3');">etree</a></tt> </tt>
+<a name="L3678"></a><tt class="py-lineno">3678</tt>  <tt class="py-line">        <tt id="link-3816" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3816', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3817" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -11990,27 +11986,27 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3820', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3821" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3817', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3818" 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-3821', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3822" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3822', '_bytes', 'link-18');">_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-3823" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-3823', 'base_url', 'link-1686');">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="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">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3824" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3824', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3825" 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-3825', 'base', 'link-3825');">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="L3667"></a><tt class="py-lineno">3667</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3668"></a><tt class="py-lineno">3668</tt>  <tt class="py-line">            <tt id="link-3826" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3826', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3827" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3818', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3819" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3819', '_bytes', 'link-18');">_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-3820" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-3820', 'base_url', 'link-1683');">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="L3679"></a><tt class="py-lineno">3679</tt>  <tt class="py-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-3821" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3821', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3822" 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-3822', 'base', 'link-3822');">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="L3680"></a><tt class="py-lineno">3680</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3681"></a><tt class="py-lineno">3681</tt>  <tt class="py-line">            <tt id="link-3823" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3823', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3824" 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-3827', 'get', 'link-270');">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="L3669"></a><tt class="py-lineno">3669</tt>  <tt class="py-line">        <tt id="link-3828" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3828', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3829" class="py-name"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-3829', 'base', 'link-3825');">base</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"https://secret/url"</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 class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3830" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3830', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3831" class="py-name"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-3831', 'base', 'link-3825');">base</a></tt><tt class="py-op">,</tt> <tt class="py-string">"https://secret/url"</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3672"></a><tt class="py-lineno">3672</tt>  <tt class="py-line">            <tt id="link-3832" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3832', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3833" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-3824', 'get', 'link-270');">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="L3682"></a><tt class="py-lineno">3682</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-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3826" class="py-name"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-3826', 'base', 'link-3822');">base</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"https://secret/url"</tt> </tt>
+<a name="L3683"></a><tt class="py-lineno">3683</tt>  <tt class="py-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.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3827', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3828" class="py-name"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-3828', 'base', 'link-3822');">base</a></tt><tt class="py-op">,</tt> <tt class="py-string">"https://secret/url"</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3685"></a><tt class="py-lineno">3685</tt>  <tt class="py-line">            <tt id="link-3829" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3829', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3830" 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-3833', 'get', 'link-270');">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="L3673"></a><tt class="py-lineno">3673</tt>  <tt class="py-line">            <tt class="py-string">"https://secret/url"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3674"></a><tt class="py-lineno">3674</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_xml_base_attribute"></a><div id="ETreeOnlyTestCase.test_xml_base_attribute-def"><a name="L3675"></a><tt class="py-lineno">3675</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="L3676"></a><tt class="py-lineno">3676</tt>  <tt class="py-line">        <tt id="link-3834" class="py-name"><a title="lxml.etree
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-3830', 'get', 'link-270');">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="L3686"></a><tt class="py-lineno">3686</tt>  <tt class="py-line">            <tt class="py-string">"https://secret/url"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3687"></a><tt class="py-lineno">3687</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_xml_base_attribute"></a><div id="ETreeOnlyTestCase.test_xml_base_attribute-def"><a name="L3688"></a><tt class="py-lineno">3688</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="L3689"></a><tt class="py-lineno">3689</tt>  <tt class="py-line">        <tt id="link-3831" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -12018,7 +12014,7 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3834', 'etree', 'link-3');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3835" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3831', 'etree', 'link-3');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3832" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -12026,8 +12022,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3835', 'etree', 'link-3');">etree</a></tt> </tt>
-<a name="L3677"></a><tt class="py-lineno">3677</tt>  <tt class="py-line">        <tt id="link-3836" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3836', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3837" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3832', 'etree', 'link-3');">etree</a></tt> </tt>
+<a name="L3690"></a><tt class="py-lineno">3690</tt>  <tt class="py-line">        <tt id="link-3833" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3833', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3834" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -12035,31 +12031,31 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3837', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3838" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3834', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3835" 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-3838', 'XML', 'link-234');">XML</a></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-18');">_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-3840" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-3840', 'base_url', 'link-1686');">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="L3678"></a><tt class="py-lineno">3678</tt>  <tt class="py-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-3841" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3841', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3842" class="py-name"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-3842', 'base', 'link-3825');">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="L3679"></a><tt class="py-lineno">3679</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3680"></a><tt class="py-lineno">3680</tt>  <tt class="py-line">            <tt id="link-3843" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3843', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3844" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3835', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3836" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3836', '_bytes', 'link-18');">_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-3837" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-3837', 'base_url', 'link-1683');">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="L3691"></a><tt class="py-lineno">3691</tt>  <tt class="py-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-3838" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3838', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3839" class="py-name"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-3839', 'base', 'link-3822');">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="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>
+<a name="L3693"></a><tt class="py-lineno">3693</tt>  <tt class="py-line">            <tt id="link-3840" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3840', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3841" 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-3844', 'get', 'link-270');">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="L3681"></a><tt class="py-lineno">3681</tt>  <tt class="py-line">        <tt id="link-3845" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3845', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3846" class="py-name"><a title="lxml.etree._Element.set
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-3841', 'get', 'link-270');">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="L3694"></a><tt class="py-lineno">3694</tt>  <tt class="py-line">        <tt id="link-3842" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3842', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3843" class="py-name"><a title="lxml.etree._Element.set
 lxml.etree._XSLTProcessingInstruction.set
 lxml.html.HtmlElement.set
-lxml.html.HtmlMixin.set" class="py-name" href="#" onclick="return doclink('link-3846', 'set', 'link-268');">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="L3682"></a><tt class="py-lineno">3682</tt>  <tt class="py-line">                 <tt class="py-string">"https://secret/url"</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3847" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3847', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3848" class="py-name"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-3848', 'base', 'link-3825');">base</a></tt><tt class="py-op">,</tt> <tt class="py-string">"https://secret/url"</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3685"></a><tt class="py-lineno">3685</tt>  <tt class="py-line">            <tt id="link-3849" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3849', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3850" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.html.HtmlMixin.set" class="py-name" href="#" onclick="return doclink('link-3843', 'set', 'link-268');">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="L3695"></a><tt class="py-lineno">3695</tt>  <tt class="py-line">                 <tt class="py-string">"https://secret/url"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3696"></a><tt class="py-lineno">3696</tt>  <tt class="py-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-3844" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3844', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3845" class="py-name"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-3845', 'base', 'link-3822');">base</a></tt><tt class="py-op">,</tt> <tt class="py-string">"https://secret/url"</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3698"></a><tt class="py-lineno">3698</tt>  <tt class="py-line">            <tt id="link-3846" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3846', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3847" 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-3850', 'get', 'link-270');">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="L3686"></a><tt class="py-lineno">3686</tt>  <tt class="py-line">            <tt class="py-string">"https://secret/url"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3687"></a><tt class="py-lineno">3687</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_html_base"></a><div id="ETreeOnlyTestCase.test_html_base-def"><a name="L3688"></a><tt class="py-lineno">3688</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="L3689"></a><tt class="py-lineno">3689</tt>  <tt class="py-line">        <tt id="link-3851" class="py-name"><a title="lxml.etree
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-3847', 'get', 'link-270');">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="L3699"></a><tt class="py-lineno">3699</tt>  <tt class="py-line">            <tt class="py-string">"https://secret/url"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3700"></a><tt class="py-lineno">3700</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_html_base"></a><div id="ETreeOnlyTestCase.test_html_base-def"><a name="L3701"></a><tt class="py-lineno">3701</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="L3702"></a><tt class="py-lineno">3702</tt>  <tt class="py-line">        <tt id="link-3848" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -12067,7 +12063,7 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3851', 'etree', 'link-3');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3852" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3848', 'etree', 'link-3');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3849" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -12075,8 +12071,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3852', 'etree', 'link-3');">etree</a></tt> </tt>
-<a name="L3690"></a><tt class="py-lineno">3690</tt>  <tt class="py-line">        <tt id="link-3853" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3853', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3854" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3849', 'etree', 'link-3');">etree</a></tt> </tt>
+<a name="L3703"></a><tt class="py-lineno">3703</tt>  <tt class="py-line">        <tt id="link-3850" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3850', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3851" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -12084,15 +12080,15 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3854', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3855" class="py-name"><a title="lxml.etree.ErrorDomains.HTML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3851', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3852" 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-3855', 'HTML', 'link-694');">HTML</a></tt><tt class="py-op">(</tt><tt id="link-3856" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3856', '_bytes', 'link-18');">_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="L3691"></a><tt class="py-lineno">3691</tt>  <tt class="py-line">                          <tt id="link-3857" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-3857', 'base_url', 'link-1686');">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="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-3858" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3858', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3859" class="py-name"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-3859', 'base', 'link-3825');">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="L3693"></a><tt class="py-lineno">3693</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_html_base_tag"></a><div id="ETreeOnlyTestCase.test_html_base_tag-def"><a name="L3694"></a><tt class="py-lineno">3694</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="L3695"></a><tt class="py-lineno">3695</tt>  <tt class="py-line">        <tt id="link-3860" class="py-name"><a title="lxml.etree
+lxml.tests.test_css.HTML" class="py-name" href="#" onclick="return doclink('link-3852', 'HTML', 'link-691');">HTML</a></tt><tt class="py-op">(</tt><tt id="link-3853" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3853', '_bytes', 'link-18');">_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="L3704"></a><tt class="py-lineno">3704</tt>  <tt class="py-line">                          <tt id="link-3854" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-3854', 'base_url', 'link-1683');">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="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-3855" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3855', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3856" class="py-name"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-3856', 'base', 'link-3822');">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="L3706"></a><tt class="py-lineno">3706</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_html_base_tag"></a><div id="ETreeOnlyTestCase.test_html_base_tag-def"><a name="L3707"></a><tt class="py-lineno">3707</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="L3708"></a><tt class="py-lineno">3708</tt>  <tt class="py-line">        <tt id="link-3857" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -12100,7 +12096,7 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3860', 'etree', 'link-3');">etree</a></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
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3857', 'etree', 'link-3');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3858" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -12108,8 +12104,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3861', 'etree', 'link-3');">etree</a></tt> </tt>
-<a name="L3696"></a><tt class="py-lineno">3696</tt>  <tt class="py-line">        <tt id="link-3862" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3862', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3863" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3858', 'etree', 'link-3');">etree</a></tt> </tt>
+<a name="L3709"></a><tt class="py-lineno">3709</tt>  <tt class="py-line">        <tt id="link-3859" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3859', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3860" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -12117,16 +12113,16 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3863', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3864" class="py-name"><a title="lxml.etree.ErrorDomains.HTML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3860', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3861" 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-3864', 'HTML', 'link-694');">HTML</a></tt><tt class="py-op">(</tt><tt id="link-3865" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3865', '_bytes', 'link-18');">_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="L3697"></a><tt class="py-lineno">3697</tt>  <tt class="py-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.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3866', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3867" class="py-name"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-3867', 'base', 'link-3825');">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="L3698"></a><tt class="py-lineno">3698</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_parse_fileobject_unicode"></a><div id="ETreeOnlyTestCase.test_parse_fileobject_unicode-def"><a name="L3699"></a><tt class="py-lineno">3699</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="L3700"></a><tt class="py-lineno">3700</tt>  <tt class="py-line">        <tt class="py-comment"># parse from a file object that returns unicode strings</tt> </tt>
-<a name="L3701"></a><tt class="py-lineno">3701</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-3868" class="py-name"><a title="lxml.tests.common_imports.LargeFileLikeUnicode" class="py-name" href="#" onclick="return doclink('link-3868', 'LargeFileLikeUnicode', 'link-13');">LargeFileLikeUnicode</a></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">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3869" class="py-name"><a title="lxml.etree
+lxml.tests.test_css.HTML" class="py-name" href="#" onclick="return doclink('link-3861', 'HTML', 'link-691');">HTML</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-18');">_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="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-3863" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3863', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3864" class="py-name"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-3864', 'base', 'link-3822');">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="L3711"></a><tt class="py-lineno">3711</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_parse_fileobject_unicode"></a><div id="ETreeOnlyTestCase.test_parse_fileobject_unicode-def"><a name="L3712"></a><tt class="py-lineno">3712</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="L3713"></a><tt class="py-lineno">3713</tt>  <tt class="py-line">        <tt class="py-comment"># parse from a file object that returns unicode strings</tt> </tt>
+<a name="L3714"></a><tt class="py-lineno">3714</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-3865" class="py-name"><a title="lxml.tests.common_imports.LargeFileLikeUnicode" class="py-name" href="#" onclick="return doclink('link-3865', 'LargeFileLikeUnicode', 'link-13');">LargeFileLikeUnicode</a></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">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3866" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -12134,32 +12130,32 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3869', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3870" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3866', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3867" 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-3870', 'parse', 'link-870');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L3703"></a><tt class="py-lineno">3703</tt>  <tt class="py-line">        <tt id="link-3871" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3871', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3872" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3872', 'getroot', 'link-805');">getroot</a></tt><tt class="py-op">(</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-3873" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3873', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3874" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3867', 'parse', 'link-867');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L3716"></a><tt class="py-lineno">3716</tt>  <tt class="py-line">        <tt id="link-3868" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3868', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3869" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3869', 'getroot', 'link-802');">getroot</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-3870" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3870', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-3871" 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-3874', 'tag', 'link-73');">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="L3705"></a><tt class="py-lineno">3705</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_dtd_io"></a><div id="ETreeOnlyTestCase.test_dtd_io-def"><a name="L3706"></a><tt class="py-lineno">3706</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="L3707"></a><tt class="py-lineno">3707</tt>  <tt class="py-line">        <tt class="py-comment"># check that DTDs that go in also go back out</tt> </tt>
-<a name="L3708"></a><tt class="py-lineno">3708</tt>  <tt class="py-line">        <tt id="link-3875" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3875', 'xml', 'link-361');">xml</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-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L3709"></a><tt class="py-lineno">3709</tt>  <tt class="py-line"><tt class="py-string">        &lt;!DOCTYPE test SYSTEM "test.dtd" [</tt> </tt>
-<a name="L3710"></a><tt class="py-lineno">3710</tt>  <tt class="py-line"><tt class="py-string">          &lt;!ENTITY entity "tasty"&gt;</tt> </tt>
-<a name="L3711"></a><tt class="py-lineno">3711</tt>  <tt class="py-line"><tt class="py-string">          &lt;!ELEMENT test (a)&gt;</tt> </tt>
-<a name="L3712"></a><tt class="py-lineno">3712</tt>  <tt class="py-line"><tt class="py-string">          &lt;!ELEMENT a (#PCDATA)&gt;</tt> </tt>
-<a name="L3713"></a><tt class="py-lineno">3713</tt>  <tt class="py-line"><tt class="py-string">        ]&gt;</tt> </tt>
-<a name="L3714"></a><tt class="py-lineno">3714</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="L3715"></a><tt class="py-lineno">3715</tt>  <tt class="py-line"><tt class="py-string">        '''</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">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3877" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3871', 'tag', 'link-73');">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="L3718"></a><tt class="py-lineno">3718</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_dtd_io"></a><div id="ETreeOnlyTestCase.test_dtd_io-def"><a name="L3719"></a><tt class="py-lineno">3719</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="L3720"></a><tt class="py-lineno">3720</tt>  <tt class="py-line">        <tt class="py-comment"># check that DTDs that go in also go back out</tt> </tt>
+<a name="L3721"></a><tt class="py-lineno">3721</tt>  <tt class="py-line">        <tt id="link-3872" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3872', 'xml', 'link-358');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-3873" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3873', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L3722"></a><tt class="py-lineno">3722</tt>  <tt class="py-line"><tt class="py-string">        &lt;!DOCTYPE test SYSTEM "test.dtd" [</tt> </tt>
+<a name="L3723"></a><tt class="py-lineno">3723</tt>  <tt class="py-line"><tt class="py-string">          &lt;!ENTITY entity "tasty"&gt;</tt> </tt>
+<a name="L3724"></a><tt class="py-lineno">3724</tt>  <tt class="py-line"><tt class="py-string">          &lt;!ELEMENT test (a)&gt;</tt> </tt>
+<a name="L3725"></a><tt class="py-lineno">3725</tt>  <tt class="py-line"><tt class="py-string">          &lt;!ELEMENT a (#PCDATA)&gt;</tt> </tt>
+<a name="L3726"></a><tt class="py-lineno">3726</tt>  <tt class="py-line"><tt class="py-string">        ]&gt;</tt> </tt>
+<a name="L3727"></a><tt class="py-lineno">3727</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="L3728"></a><tt class="py-lineno">3728</tt>  <tt class="py-line"><tt class="py-string">        '''</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">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3874" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -12167,14 +12163,14 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3877', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3878" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3874', 'etree', 'link-3');">etree</a></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-3878', 'parse', 'link-870');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-3879" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3879', 'xml', 'link-361');">xml</a></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">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-3880" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3875', 'parse', 'link-867');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-3876" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3876', 'xml', 'link-358');">xml</a></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">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-3877" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -12182,15 +12178,15 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3880', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3881" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3881', 'tostring', 'link-237');">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-3882" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-3882', 'replace', 'link-644');">replace</a></tt><tt class="py-op">(</tt><tt id="link-3883" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3883', '_bytes', 'link-18');">_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-3884" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3884', '_bytes', 'link-18');">_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="L3718"></a><tt class="py-lineno">3718</tt>  <tt class="py-line">                         <tt id="link-3885" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3885', 'xml', 'link-361');">xml</a></tt><tt class="py-op">.</tt><tt id="link-3886" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-3886', 'replace', 'link-644');">replace</a></tt><tt class="py-op">(</tt><tt id="link-3887" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3887', '_bytes', 'link-18');">_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-3888" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3888', '_bytes', 'link-18');">_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="L3719"></a><tt class="py-lineno">3719</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_byte_zero"></a><div id="ETreeOnlyTestCase.test_byte_zero-def"><a name="L3720"></a><tt class="py-lineno">3720</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="L3721"></a><tt class="py-lineno">3721</tt>  <tt class="py-line">        <tt id="link-3889" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3877', 'etree', 'link-3');">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-237');">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-3879" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-3879', 'replace', 'link-641');">replace</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-18');">_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-3881" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3881', '_bytes', 'link-18');">_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="L3731"></a><tt class="py-lineno">3731</tt>  <tt class="py-line">                         <tt id="link-3882" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3882', 'xml', 'link-358');">xml</a></tt><tt class="py-op">.</tt><tt id="link-3883" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-3883', 'replace', 'link-641');">replace</a></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-18');">_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-3885" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3885', '_bytes', 'link-18');">_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="L3732"></a><tt class="py-lineno">3732</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_byte_zero"></a><div id="ETreeOnlyTestCase.test_byte_zero-def"><a name="L3733"></a><tt class="py-lineno">3733</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="L3734"></a><tt class="py-lineno">3734</tt>  <tt class="py-line">        <tt id="link-3886" 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-3889', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3890" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3886', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3887" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -12198,28 +12194,28 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3890', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3891" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3887', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3888" 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-3891', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L3722"></a><tt class="py-lineno">3722</tt>  <tt class="py-line"> </tt>
-<a name="L3723"></a><tt class="py-lineno">3723</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3892" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3888', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L3735"></a><tt class="py-lineno">3735</tt>  <tt class="py-line"> </tt>
+<a name="L3736"></a><tt class="py-lineno">3736</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3889" 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-3892', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</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">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-3893" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3893', 'setattr', 'link-81');">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="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">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3894" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3894', 'setattr', 'link-81');">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="L3726"></a><tt class="py-lineno">3726</tt>  <tt class="py-line"> </tt>
-<a name="L3727"></a><tt class="py-lineno">3727</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-3895" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3889', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</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">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3890" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3890', 'setattr', 'link-81');">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="L3738"></a><tt class="py-lineno">3738</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-3891" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3891', 'setattr', 'link-81');">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="L3739"></a><tt class="py-lineno">3739</tt>  <tt class="py-line"> </tt>
+<a name="L3740"></a><tt class="py-lineno">3740</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-3892" 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-3895', 'Element', 'link-69');">Element</a></tt><tt class="py-op">,</tt> <tt class="py-string">'ha\0ho'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3728"></a><tt class="py-lineno">3728</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_unicode_byte_zero"></a><div id="ETreeOnlyTestCase.test_unicode_byte_zero-def"><a name="L3729"></a><tt class="py-lineno">3729</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="L3730"></a><tt class="py-lineno">3730</tt>  <tt class="py-line">        <tt id="link-3896" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3892', 'Element', 'link-69');">Element</a></tt><tt class="py-op">,</tt> <tt class="py-string">'ha\0ho'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3741"></a><tt class="py-lineno">3741</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_unicode_byte_zero"></a><div id="ETreeOnlyTestCase.test_unicode_byte_zero-def"><a name="L3742"></a><tt class="py-lineno">3742</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="L3743"></a><tt class="py-lineno">3743</tt>  <tt class="py-line">        <tt id="link-3893" 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-3896', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3897" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3893', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3894" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -12227,31 +12223,31 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3897', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3898" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3894', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3895" 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-3898', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L3731"></a><tt class="py-lineno">3731</tt>  <tt class="py-line"> </tt>
-<a name="L3732"></a><tt class="py-lineno">3732</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3899" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3895', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L3744"></a><tt class="py-lineno">3744</tt>  <tt class="py-line"> </tt>
+<a name="L3745"></a><tt class="py-lineno">3745</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3896" 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-3899', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</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">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-3900" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3900', 'setattr', 'link-81');">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="L3734"></a><tt class="py-lineno">3734</tt>  <tt class="py-line">                          <tt id="link-3901" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3901', '_str', 'link-17');">_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="L3735"></a><tt class="py-lineno">3735</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-3902" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3902', 'setattr', 'link-81');">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="L3736"></a><tt class="py-lineno">3736</tt>  <tt class="py-line">                          <tt id="link-3903" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3903', '_str', 'link-17');">_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="L3737"></a><tt class="py-lineno">3737</tt>  <tt class="py-line"> </tt>
-<a name="L3738"></a><tt class="py-lineno">3738</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-3904" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3896', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</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">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-3897" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3897', 'setattr', 'link-81');">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="L3747"></a><tt class="py-lineno">3747</tt>  <tt class="py-line">                          <tt id="link-3898" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3898', '_str', 'link-17');">_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="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">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3899" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3899', 'setattr', 'link-81');">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="L3749"></a><tt class="py-lineno">3749</tt>  <tt class="py-line">                          <tt id="link-3900" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3900', '_str', 'link-17');">_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="L3750"></a><tt class="py-lineno">3750</tt>  <tt class="py-line"> </tt>
+<a name="L3751"></a><tt class="py-lineno">3751</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-3901" 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-3904', 'Element', 'link-69');">Element</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L3739"></a><tt class="py-lineno">3739</tt>  <tt class="py-line">                          <tt id="link-3905" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3905', '_str', 'link-17');">_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="L3740"></a><tt class="py-lineno">3740</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_byte_invalid"></a><div id="ETreeOnlyTestCase.test_byte_invalid-def"><a name="L3741"></a><tt class="py-lineno">3741</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="L3742"></a><tt class="py-lineno">3742</tt>  <tt class="py-line">        <tt id="link-3906" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3901', 'Element', 'link-69');">Element</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L3752"></a><tt class="py-lineno">3752</tt>  <tt class="py-line">                          <tt id="link-3902" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3902', '_str', 'link-17');">_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="L3753"></a><tt class="py-lineno">3753</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_byte_invalid"></a><div id="ETreeOnlyTestCase.test_byte_invalid-def"><a name="L3754"></a><tt class="py-lineno">3754</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="L3755"></a><tt class="py-lineno">3755</tt>  <tt class="py-line">        <tt id="link-3903" 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-3906', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3907" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3903', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3904" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -12259,35 +12255,35 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3907', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3908" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3904', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3905" 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-3908', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L3743"></a><tt class="py-lineno">3743</tt>  <tt class="py-line"> </tt>
-<a name="L3744"></a><tt class="py-lineno">3744</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3909" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3905', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L3756"></a><tt class="py-lineno">3756</tt>  <tt class="py-line"> </tt>
+<a name="L3757"></a><tt class="py-lineno">3757</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3906" 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-3909', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</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">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-3910" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3910', 'setattr', 'link-81');">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="L3746"></a><tt class="py-lineno">3746</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-3911" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3911', 'setattr', 'link-81');">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="L3747"></a><tt class="py-lineno">3747</tt>  <tt class="py-line"> </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">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3912" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3912', 'setattr', 'link-81');">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="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">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3913" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3913', 'setattr', 'link-81');">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="L3750"></a><tt class="py-lineno">3750</tt>  <tt class="py-line"> </tt>
-<a name="L3751"></a><tt class="py-lineno">3751</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-3914" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3906', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</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">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-3907" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3907', 'setattr', 'link-81');">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="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">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3908" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3908', 'setattr', 'link-81');">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="L3760"></a><tt class="py-lineno">3760</tt>  <tt class="py-line"> </tt>
+<a name="L3761"></a><tt class="py-lineno">3761</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-3909" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3909', 'setattr', 'link-81');">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="L3762"></a><tt class="py-lineno">3762</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-3910" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3910', 'setattr', 'link-81');">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="L3763"></a><tt class="py-lineno">3763</tt>  <tt class="py-line"> </tt>
+<a name="L3764"></a><tt class="py-lineno">3764</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-3911" 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-3914', 'Element', 'link-69');">Element</a></tt><tt class="py-op">,</tt> <tt class="py-string">'ha\x07ho'</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">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-3915" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3911', 'Element', 'link-69');">Element</a></tt><tt class="py-op">,</tt> <tt class="py-string">'ha\x07ho'</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">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3912" 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-3915', 'Element', 'link-69');">Element</a></tt><tt class="py-op">,</tt> <tt class="py-string">'ha\x02ho'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3753"></a><tt class="py-lineno">3753</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_unicode_byte_invalid"></a><div id="ETreeOnlyTestCase.test_unicode_byte_invalid-def"><a name="L3754"></a><tt class="py-lineno">3754</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="L3755"></a><tt class="py-lineno">3755</tt>  <tt class="py-line">        <tt id="link-3916" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3912', 'Element', 'link-69');">Element</a></tt><tt class="py-op">,</tt> <tt class="py-string">'ha\x02ho'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3766"></a><tt class="py-lineno">3766</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_unicode_byte_invalid"></a><div id="ETreeOnlyTestCase.test_unicode_byte_invalid-def"><a name="L3767"></a><tt class="py-lineno">3767</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="L3768"></a><tt class="py-lineno">3768</tt>  <tt class="py-line">        <tt id="link-3913" 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-3916', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3917" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3913', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3914" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -12295,41 +12291,41 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3917', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3918" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3914', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3915" 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-3918', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L3756"></a><tt class="py-lineno">3756</tt>  <tt class="py-line"> </tt>
-<a name="L3757"></a><tt class="py-lineno">3757</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3919" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3915', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L3769"></a><tt class="py-lineno">3769</tt>  <tt class="py-line"> </tt>
+<a name="L3770"></a><tt class="py-lineno">3770</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3916" 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-3919', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</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">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-3920" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3920', 'setattr', 'link-81');">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="L3759"></a><tt class="py-lineno">3759</tt>  <tt class="py-line">                          <tt id="link-3921" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3921', '_str', 'link-17');">_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="L3760"></a><tt class="py-lineno">3760</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-3922" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3922', 'setattr', 'link-81');">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="L3761"></a><tt class="py-lineno">3761</tt>  <tt class="py-line">                          <tt id="link-3923" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3923', '_str', 'link-17');">_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="L3762"></a><tt class="py-lineno">3762</tt>  <tt class="py-line"> </tt>
-<a name="L3763"></a><tt class="py-lineno">3763</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-3924" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3924', 'setattr', 'link-81');">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="L3764"></a><tt class="py-lineno">3764</tt>  <tt class="py-line">                          <tt id="link-3925" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3925', '_str', 'link-17');">_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="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">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3926" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3926', 'setattr', 'link-81');">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="L3766"></a><tt class="py-lineno">3766</tt>  <tt class="py-line">                          <tt id="link-3927" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3927', '_str', 'link-17');">_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="L3767"></a><tt class="py-lineno">3767</tt>  <tt class="py-line"> </tt>
-<a name="L3768"></a><tt class="py-lineno">3768</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-3928" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3916', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</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">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-3917" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3917', 'setattr', 'link-81');">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="L3772"></a><tt class="py-lineno">3772</tt>  <tt class="py-line">                          <tt id="link-3918" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3918', '_str', 'link-17');">_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="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">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3919" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3919', 'setattr', 'link-81');">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="L3774"></a><tt class="py-lineno">3774</tt>  <tt class="py-line">                          <tt id="link-3920" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3920', '_str', 'link-17');">_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="L3775"></a><tt class="py-lineno">3775</tt>  <tt class="py-line"> </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">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3921" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3921', 'setattr', 'link-81');">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="L3777"></a><tt class="py-lineno">3777</tt>  <tt class="py-line">                          <tt id="link-3922" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3922', '_str', 'link-17');">_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="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">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3923" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3923', 'setattr', 'link-81');">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="L3779"></a><tt class="py-lineno">3779</tt>  <tt class="py-line">                          <tt id="link-3924" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3924', '_str', 'link-17');">_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="L3780"></a><tt class="py-lineno">3780</tt>  <tt class="py-line"> </tt>
+<a name="L3781"></a><tt class="py-lineno">3781</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-3925" 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-3928', 'Element', 'link-69');">Element</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L3769"></a><tt class="py-lineno">3769</tt>  <tt class="py-line">                          <tt id="link-3929" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3929', '_str', 'link-17');">_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="L3770"></a><tt class="py-lineno">3770</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-3930" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3925', 'Element', 'link-69');">Element</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L3782"></a><tt class="py-lineno">3782</tt>  <tt class="py-line">                          <tt id="link-3926" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3926', '_str', 'link-17');">_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="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">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3927" 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-3930', 'Element', 'link-69');">Element</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L3771"></a><tt class="py-lineno">3771</tt>  <tt class="py-line">                          <tt id="link-3931" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3931', '_str', 'link-17');">_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="L3772"></a><tt class="py-lineno">3772</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="L3773"></a><tt class="py-lineno">3773</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="L3774"></a><tt class="py-lineno">3774</tt>  <tt class="py-line">        <tt id="link-3932" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3927', 'Element', 'link-69');">Element</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L3784"></a><tt class="py-lineno">3784</tt>  <tt class="py-line">                          <tt id="link-3928" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3928', '_str', 'link-17');">_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="L3785"></a><tt class="py-lineno">3785</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="L3786"></a><tt class="py-lineno">3786</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="L3787"></a><tt class="py-lineno">3787</tt>  <tt class="py-line">        <tt id="link-3929" 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-3932', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3933" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3929', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</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.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -12337,40 +12333,40 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3933', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3934" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3930', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3931" 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-3934', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L3775"></a><tt class="py-lineno">3775</tt>  <tt class="py-line"> </tt>
-<a name="L3776"></a><tt class="py-lineno">3776</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3935" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3931', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L3788"></a><tt class="py-lineno">3788</tt>  <tt class="py-line"> </tt>
+<a name="L3789"></a><tt class="py-lineno">3789</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3932" 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-3935', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</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">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-3936" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3936', 'setattr', 'link-81');">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="L3778"></a><tt class="py-lineno">3778</tt>  <tt class="py-line">                          <tt id="link-3937" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3937', '_str', 'link-17');">_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="L3779"></a><tt class="py-lineno">3779</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-3938" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3938', 'setattr', 'link-81');">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="L3780"></a><tt class="py-lineno">3780</tt>  <tt class="py-line">                          <tt id="link-3939" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3939', '_str', 'link-17');">_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="L3781"></a><tt class="py-lineno">3781</tt>  <tt class="py-line"> </tt>
-<a name="L3782"></a><tt class="py-lineno">3782</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-3940" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3940', 'setattr', 'link-81');">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="L3783"></a><tt class="py-lineno">3783</tt>  <tt class="py-line">                          <tt id="link-3941" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3941', '_str', 'link-17');">_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="L3784"></a><tt class="py-lineno">3784</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-3942" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3942', 'setattr', 'link-81');">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="L3785"></a><tt class="py-lineno">3785</tt>  <tt class="py-line">                          <tt id="link-3943" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3943', '_str', 'link-17');">_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="L3786"></a><tt class="py-lineno">3786</tt>  <tt class="py-line"> </tt>
-<a name="L3787"></a><tt class="py-lineno">3787</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-3944" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3932', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</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">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-3933" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3933', 'setattr', 'link-81');">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="L3791"></a><tt class="py-lineno">3791</tt>  <tt class="py-line">                          <tt id="link-3934" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3934', '_str', 'link-17');">_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="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">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3935" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3935', 'setattr', 'link-81');">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="L3793"></a><tt class="py-lineno">3793</tt>  <tt class="py-line">                          <tt id="link-3936" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3936', '_str', 'link-17');">_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="L3794"></a><tt class="py-lineno">3794</tt>  <tt class="py-line"> </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">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3937" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3937', 'setattr', 'link-81');">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="L3796"></a><tt class="py-lineno">3796</tt>  <tt class="py-line">                          <tt id="link-3938" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3938', '_str', 'link-17');">_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="L3797"></a><tt class="py-lineno">3797</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-3939" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3939', 'setattr', 'link-81');">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="L3798"></a><tt class="py-lineno">3798</tt>  <tt class="py-line">                          <tt id="link-3940" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3940', '_str', 'link-17');">_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="L3799"></a><tt class="py-lineno">3799</tt>  <tt class="py-line"> </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">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3941" 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-3944', 'Element', 'link-69');">Element</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L3788"></a><tt class="py-lineno">3788</tt>  <tt class="py-line">                          <tt id="link-3945" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3945', '_str', 'link-17');">_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="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">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3946" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3941', 'Element', 'link-69');">Element</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L3801"></a><tt class="py-lineno">3801</tt>  <tt class="py-line">                          <tt id="link-3942" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3942', '_str', 'link-17');">_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="L3802"></a><tt class="py-lineno">3802</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-3943" 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-3946', 'Element', 'link-69');">Element</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L3790"></a><tt class="py-lineno">3790</tt>  <tt class="py-line">                          <tt id="link-3947" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3947', '_str', 'link-17');">_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="L3791"></a><tt class="py-lineno">3791</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_encoding_tostring_utf16"></a><div id="ETreeOnlyTestCase.test_encoding_tostring_utf16-def"><a name="L3792"></a><tt class="py-lineno">3792</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="L3793"></a><tt class="py-lineno">3793</tt>  <tt class="py-line">        <tt class="py-comment"># ElementTree fails to serialize this</tt> </tt>
-<a name="L3794"></a><tt class="py-lineno">3794</tt>  <tt class="py-line">        <tt id="link-3948" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3948', 'tostring', 'link-237');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3949" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3943', 'Element', 'link-69');">Element</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L3803"></a><tt class="py-lineno">3803</tt>  <tt class="py-line">                          <tt id="link-3944" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3944', '_str', 'link-17');">_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="L3804"></a><tt class="py-lineno">3804</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_encoding_tostring_utf16"></a><div id="ETreeOnlyTestCase.test_encoding_tostring_utf16-def"><a name="L3805"></a><tt class="py-lineno">3805</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="L3806"></a><tt class="py-lineno">3806</tt>  <tt class="py-line">        <tt class="py-comment"># ElementTree fails to serialize this</tt> </tt>
+<a name="L3807"></a><tt class="py-lineno">3807</tt>  <tt class="py-line">        <tt id="link-3945" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3945', 'tostring', 'link-237');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3946" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -12378,12 +12374,12 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3949', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3950" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3950', 'tostring', 'link-237');">tostring</a></tt> </tt>
-<a name="L3795"></a><tt class="py-lineno">3795</tt>  <tt class="py-line">        <tt id="link-3951" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3946', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3947" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3947', 'tostring', 'link-237');">tostring</a></tt> </tt>
+<a name="L3808"></a><tt class="py-lineno">3808</tt>  <tt class="py-line">        <tt id="link-3948" 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-3951', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3952" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3948', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3949" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -12391,11 +12387,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3952', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3953" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3949', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3950" 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-3953', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L3796"></a><tt class="py-lineno">3796</tt>  <tt class="py-line">        <tt id="link-3954" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3954', 'SubElement', 'link-112');">SubElement</a></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
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3950', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L3809"></a><tt class="py-lineno">3809</tt>  <tt class="py-line">        <tt id="link-3951" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3951', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3952" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -12403,27 +12399,27 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3955', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3956" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3956', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
-<a name="L3797"></a><tt class="py-lineno">3797</tt>  <tt class="py-line">         </tt>
-<a name="L3798"></a><tt class="py-lineno">3798</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3957" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3952', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3953" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3953', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
+<a name="L3810"></a><tt class="py-lineno">3810</tt>  <tt class="py-line">         </tt>
+<a name="L3811"></a><tt class="py-lineno">3811</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3954" 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-3957', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3799"></a><tt class="py-lineno">3799</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3958" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3958', 'SubElement', 'link-112');">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="L3800"></a><tt class="py-lineno">3800</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3959" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3959', 'SubElement', 'link-112');">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="L3801"></a><tt class="py-lineno">3801</tt>  <tt class="py-line"> </tt>
-<a name="L3802"></a><tt class="py-lineno">3802</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3960" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3960', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-3961" class="py-name"><a title="lxml.etree.DocInfo.encoding
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3954', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'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-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3955" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3955', 'SubElement', 'link-112');">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="L3813"></a><tt class="py-lineno">3813</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3956" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3956', 'SubElement', 'link-112');">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="L3814"></a><tt class="py-lineno">3814</tt>  <tt class="py-line"> </tt>
+<a name="L3815"></a><tt class="py-lineno">3815</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3957" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3957', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-3958" class="py-name"><a title="lxml.etree.DocInfo.encoding
 lxml.tests.selftest.encoding
-lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-3961', 'encoding', 'link-1042');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">'UTF-16'</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">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-18');">_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="L3804"></a><tt class="py-lineno">3804</tt>  <tt class="py-line">                          <tt id="link-3963" class="py-name"><a title="lxml.etree.canonicalize
-lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3963', 'canonicalize', 'link-16');">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="L3805"></a><tt class="py-lineno">3805</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tostring_none"></a><div id="ETreeOnlyTestCase.test_tostring_none-def"><a name="L3806"></a><tt class="py-lineno">3806</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="L3807"></a><tt class="py-lineno">3807</tt>  <tt class="py-line">        <tt class="py-comment"># ElementTree raises an AssertionError here</tt> </tt>
-<a name="L3808"></a><tt class="py-lineno">3808</tt>  <tt class="py-line">        <tt id="link-3964" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3964', 'tostring', 'link-237');">tostring</a></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
+lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-3958', 'encoding', 'link-1039');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">'UTF-16'</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-3959" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3959', '_bytes', 'link-18');">_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="L3817"></a><tt class="py-lineno">3817</tt>  <tt class="py-line">                          <tt id="link-3960" class="py-name"><a title="lxml.etree.canonicalize
+lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3960', 'canonicalize', 'link-16');">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="L3818"></a><tt class="py-lineno">3818</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tostring_none"></a><div id="ETreeOnlyTestCase.test_tostring_none-def"><a name="L3819"></a><tt class="py-lineno">3819</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="L3820"></a><tt class="py-lineno">3820</tt>  <tt class="py-line">        <tt class="py-comment"># ElementTree raises an AssertionError here</tt> </tt>
+<a name="L3821"></a><tt class="py-lineno">3821</tt>  <tt class="py-line">        <tt id="link-3961" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3961', 'tostring', 'link-237');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3962" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -12431,9 +12427,9 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3965', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3966" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3966', 'tostring', 'link-237');">tostring</a></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">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-3967" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3962', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3963" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3963', 'tostring', 'link-237');">tostring</a></tt> </tt>
+<a name="L3822"></a><tt class="py-lineno">3822</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-3964" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -12441,12 +12437,12 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3967', 'etree', 'link-3');">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-237');">tostring</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3810"></a><tt class="py-lineno">3810</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tostring_pretty"></a><div id="ETreeOnlyTestCase.test_tostring_pretty-def"><a name="L3811"></a><tt class="py-lineno">3811</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="L3812"></a><tt class="py-lineno">3812</tt>  <tt class="py-line">        <tt id="link-3969" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3969', 'tostring', 'link-237');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3970" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3964', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3965" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3965', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3823"></a><tt class="py-lineno">3823</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tostring_pretty"></a><div id="ETreeOnlyTestCase.test_tostring_pretty-def"><a name="L3824"></a><tt class="py-lineno">3824</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="L3825"></a><tt class="py-lineno">3825</tt>  <tt class="py-line">        <tt id="link-3966" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3966', 'tostring', 'link-237');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</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.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -12454,12 +12450,12 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3970', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3971" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3971', 'tostring', 'link-237');">tostring</a></tt> </tt>
-<a name="L3813"></a><tt class="py-lineno">3813</tt>  <tt class="py-line">        <tt id="link-3972" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3967', 'etree', 'link-3');">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-237');">tostring</a></tt> </tt>
+<a name="L3826"></a><tt class="py-lineno">3826</tt>  <tt class="py-line">        <tt id="link-3969" 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-3972', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3973" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3969', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3970" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -12467,11 +12463,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3973', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3974" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3970', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3971" 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-3974', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L3814"></a><tt class="py-lineno">3814</tt>  <tt class="py-line">        <tt id="link-3975" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3975', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3976" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3971', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L3827"></a><tt class="py-lineno">3827</tt>  <tt class="py-line">        <tt id="link-3972" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3972', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3973" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -12479,30 +12475,30 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3976', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3977" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3977', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
-<a name="L3815"></a><tt class="py-lineno">3815</tt>  <tt class="py-line"> </tt>
-<a name="L3816"></a><tt class="py-lineno">3816</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3978" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3973', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3974" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3974', 'SubElement', 'link-112');">SubElement</a></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">a</tt> <tt class="py-op">=</tt> <tt id="link-3975" 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-3978', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</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">b</tt> <tt class="py-op">=</tt> <tt id="link-3979" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3979', 'SubElement', 'link-112');">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="L3818"></a><tt class="py-lineno">3818</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3980" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3980', 'SubElement', 'link-112');">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="L3819"></a><tt class="py-lineno">3819</tt>  <tt class="py-line"> </tt>
-<a name="L3820"></a><tt class="py-lineno">3820</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3981" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3981', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</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 class="py-name">result</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-18');">_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="L3822"></a><tt class="py-lineno">3822</tt>  <tt class="py-line"> </tt>
-<a name="L3823"></a><tt class="py-lineno">3823</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3983" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3983', 'tostring', 'link-237');">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="L3824"></a><tt class="py-lineno">3824</tt>  <tt class="py-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-3984" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3984', '_bytes', 'link-18');">_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="L3825"></a><tt class="py-lineno">3825</tt>  <tt class="py-line"> </tt>
-<a name="L3826"></a><tt class="py-lineno">3826</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3985" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3985', 'tostring', 'link-237');">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="L3827"></a><tt class="py-lineno">3827</tt>  <tt class="py-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-3986" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3986', '_bytes', 'link-18');">_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="L3828"></a><tt class="py-lineno">3828</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tostring_with_tail"></a><div id="ETreeOnlyTestCase.test_tostring_with_tail-def"><a name="L3829"></a><tt class="py-lineno">3829</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="L3830"></a><tt class="py-lineno">3830</tt>  <tt class="py-line">        <tt id="link-3987" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3987', 'tostring', 'link-237');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3988" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3975', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</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">b</tt> <tt class="py-op">=</tt> <tt id="link-3976" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3976', 'SubElement', 'link-112');">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="L3831"></a><tt class="py-lineno">3831</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3977" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3977', 'SubElement', 'link-112');">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="L3832"></a><tt class="py-lineno">3832</tt>  <tt class="py-line"> </tt>
+<a name="L3833"></a><tt class="py-lineno">3833</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3978" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3978', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L3834"></a><tt class="py-lineno">3834</tt>  <tt class="py-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-3979" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3979', '_bytes', 'link-18');">_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="L3835"></a><tt class="py-lineno">3835</tt>  <tt class="py-line"> </tt>
+<a name="L3836"></a><tt class="py-lineno">3836</tt>  <tt class="py-line">        <tt class="py-name">result</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-237');">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="L3837"></a><tt class="py-lineno">3837</tt>  <tt class="py-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-3981" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3981', '_bytes', 'link-18');">_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="L3838"></a><tt class="py-lineno">3838</tt>  <tt class="py-line"> </tt>
+<a name="L3839"></a><tt class="py-lineno">3839</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3982" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3982', 'tostring', 'link-237');">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="L3840"></a><tt class="py-lineno">3840</tt>  <tt class="py-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-3983" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3983', '_bytes', 'link-18');">_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="L3841"></a><tt class="py-lineno">3841</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tostring_with_tail"></a><div id="ETreeOnlyTestCase.test_tostring_with_tail-def"><a name="L3842"></a><tt class="py-lineno">3842</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="L3843"></a><tt class="py-lineno">3843</tt>  <tt class="py-line">        <tt id="link-3984" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3984', 'tostring', 'link-237');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</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.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -12510,12 +12506,12 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3988', 'etree', 'link-3');">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-237');">tostring</a></tt> </tt>
-<a name="L3831"></a><tt class="py-lineno">3831</tt>  <tt class="py-line">        <tt id="link-3990" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3985', 'etree', 'link-3');">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-237');">tostring</a></tt> </tt>
+<a name="L3844"></a><tt class="py-lineno">3844</tt>  <tt class="py-line">        <tt id="link-3987" 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-3990', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3991" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3987', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3988" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -12523,11 +12519,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3991', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3992" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3988', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3989" 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-3992', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L3832"></a><tt class="py-lineno">3832</tt>  <tt class="py-line">        <tt id="link-3993" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3993', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3994" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3989', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L3845"></a><tt class="py-lineno">3845</tt>  <tt class="py-line">        <tt id="link-3990" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3990', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3991" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -12535,34 +12531,34 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3994', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3995" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3995', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
-<a name="L3833"></a><tt class="py-lineno">3833</tt>  <tt class="py-line"> </tt>
-<a name="L3834"></a><tt class="py-lineno">3834</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3996" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3991', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3992" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3992', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
+<a name="L3846"></a><tt class="py-lineno">3846</tt>  <tt class="py-line"> </tt>
+<a name="L3847"></a><tt class="py-lineno">3847</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3993" 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-3996', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3835"></a><tt class="py-lineno">3835</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3997" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3997', 'tail', 'link-981');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"aTAIL"</tt> </tt>
-<a name="L3836"></a><tt class="py-lineno">3836</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3998" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3998', 'SubElement', 'link-112');">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="L3837"></a><tt class="py-lineno">3837</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3999" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3999', 'tail', 'link-981');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"bTAIL"</tt> </tt>
-<a name="L3838"></a><tt class="py-lineno">3838</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-4000" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4000', 'SubElement', 'link-112');">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="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">result</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-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</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">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-4002" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4002', '_bytes', 'link-18');">_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="L3842"></a><tt class="py-lineno">3842</tt>  <tt class="py-line"> </tt>
-<a name="L3843"></a><tt class="py-lineno">3843</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-4003" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4003', 'tostring', 'link-237');">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="L3844"></a><tt class="py-lineno">3844</tt>  <tt class="py-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-4004" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4004', '_bytes', 'link-18');">_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="L3845"></a><tt class="py-lineno">3845</tt>  <tt class="py-line"> </tt>
-<a name="L3846"></a><tt class="py-lineno">3846</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-4005" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4005', 'tostring', 'link-237');">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="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">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-4006" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4006', '_bytes', 'link-18');">_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="L3848"></a><tt class="py-lineno">3848</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="L3849"></a><tt class="py-lineno">3849</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="L3850"></a><tt class="py-lineno">3850</tt>  <tt class="py-line">        <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-237');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4008" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3993', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</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">a</tt><tt class="py-op">.</tt><tt id="link-3994" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3994', 'tail', 'link-978');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"aTAIL"</tt> </tt>
+<a name="L3849"></a><tt class="py-lineno">3849</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3995" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3995', 'SubElement', 'link-112');">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="L3850"></a><tt class="py-lineno">3850</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3996" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3996', 'tail', 'link-978');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"bTAIL"</tt> </tt>
+<a name="L3851"></a><tt class="py-lineno">3851</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3997" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3997', 'SubElement', 'link-112');">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="L3852"></a><tt class="py-lineno">3852</tt>  <tt class="py-line"> </tt>
+<a name="L3853"></a><tt class="py-lineno">3853</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3998" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3998', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">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-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-3999" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3999', '_bytes', 'link-18');">_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="L3855"></a><tt class="py-lineno">3855</tt>  <tt class="py-line"> </tt>
+<a name="L3856"></a><tt class="py-lineno">3856</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-4000" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4000', 'tostring', 'link-237');">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="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">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-4001" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4001', '_bytes', 'link-18');">_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="L3858"></a><tt class="py-lineno">3858</tt>  <tt class="py-line"> </tt>
+<a name="L3859"></a><tt class="py-lineno">3859</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-4002" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4002', 'tostring', 'link-237');">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="L3860"></a><tt class="py-lineno">3860</tt>  <tt class="py-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-4003" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4003', '_bytes', 'link-18');">_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="L3861"></a><tt class="py-lineno">3861</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="L3862"></a><tt class="py-lineno">3862</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="L3863"></a><tt class="py-lineno">3863</tt>  <tt class="py-line">        <tt id="link-4004" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4004', 'tostring', 'link-237');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</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.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -12570,12 +12566,12 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4008', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4009" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4009', 'tostring', 'link-237');">tostring</a></tt> </tt>
-<a name="L3851"></a><tt class="py-lineno">3851</tt>  <tt class="py-line">        <tt id="link-4010" 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-4005', 'etree', 'link-3');">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-237');">tostring</a></tt> </tt>
+<a name="L3864"></a><tt class="py-lineno">3864</tt>  <tt class="py-line">        <tt id="link-4007" 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-4010', 'html', 'link-4010');">html</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4011" class="py-name"><a title="lxml.etree
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-4007', 'html', 'link-4007');">html</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4008" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -12583,15 +12579,15 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4011', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4012" class="py-name"><a title="lxml.etree.fromstring
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4008', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4009" 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-4012', 'fromstring', 'link-850');">fromstring</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3852"></a><tt class="py-lineno">3852</tt>  <tt class="py-line">            <tt class="py-string">'&lt;html&gt;&lt;body&gt;'</tt> </tt>
-<a name="L3853"></a><tt class="py-lineno">3853</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="L3854"></a><tt class="py-lineno">3854</tt>  <tt class="py-line">            <tt class="py-string">'&lt;/body&gt;&lt;/html&gt;'</tt><tt class="py-op">,</tt> </tt>
-<a name="L3855"></a><tt class="py-lineno">3855</tt>  <tt class="py-line">            <tt id="link-4013" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4013', 'parser', 'link-861');">parser</a></tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4014" class="py-name"><a title="lxml.etree
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-4009', 'fromstring', 'link-847');">fromstring</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3865"></a><tt class="py-lineno">3865</tt>  <tt class="py-line">            <tt class="py-string">'&lt;html&gt;&lt;body&gt;'</tt> </tt>
+<a name="L3866"></a><tt class="py-lineno">3866</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="L3867"></a><tt class="py-lineno">3867</tt>  <tt class="py-line">            <tt class="py-string">'&lt;/body&gt;&lt;/html&gt;'</tt><tt class="py-op">,</tt> </tt>
+<a name="L3868"></a><tt class="py-lineno">3868</tt>  <tt class="py-line">            <tt id="link-4010" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4010', 'parser', 'link-858');">parser</a></tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4011" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -12599,47 +12595,47 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4014', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4015" 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-4011', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4012" 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-4015', 'HTMLParser', 'link-4015');">HTMLParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</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-4016" class="py-name"><a title="lxml.html
+lxml.html.html5parser.HTMLParser" class="py-name" href="#" onclick="return doclink('link-4012', 'HTMLParser', 'link-4012');">HTMLParser</a></tt><tt class="py-op">(</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-4013" 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-4016', 'html', 'link-4010');">html</a></tt><tt class="py-op">.</tt><tt id="link-4017" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-4013', 'html', 'link-4007');">html</a></tt><tt class="py-op">.</tt><tt id="link-4014" 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-4017', 'tag', 'link-73');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'html'</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">div</tt> <tt class="py-op">=</tt> <tt id="link-4018" class="py-name"><a title="lxml.html
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-4014', 'tag', 'link-73');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'html'</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">div</tt> <tt class="py-op">=</tt> <tt id="link-4015" 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-4018', 'html', 'link-4010');">html</a></tt><tt class="py-op">.</tt><tt id="link-4019" class="py-name"><a title="lxml.etree._Element.find
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-4015', 'html', 'link-4007');">html</a></tt><tt class="py-op">.</tt><tt id="link-4016" class="py-name"><a title="lxml.etree._Element.find
 lxml.etree._ElementTree.find
 lxml.objectify.ObjectPath.find
 lxml.tests.selftest.find
-lxml.tests.selftest2.find" class="py-name" href="#" onclick="return doclink('link-4019', 'find', 'link-3159');">find</a></tt><tt class="py-op">(</tt><tt class="py-string">'.//div'</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">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-4020" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-4020', 'tail', 'link-981');">tail</a></tt><tt class="py-op">,</tt> <tt class="py-string">'\r\n'</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">result</tt> <tt class="py-op">=</tt> <tt id="link-4021" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4021', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">div</tt><tt class="py-op">,</tt> <tt id="link-4022" 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-4022', 'method', 'link-4022');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'html'</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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">result</tt><tt class="py-op">,</tt> </tt>
-<a name="L3862"></a><tt class="py-lineno">3862</tt>  <tt class="py-line">            <tt id="link-4023" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4023', '_bytes', 'link-18');">_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="L3863"></a><tt class="py-lineno">3863</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-4024" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4024', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">div</tt><tt class="py-op">,</tt> <tt id="link-4025" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4025', 'method', 'link-4022');">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="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>
-<a name="L3865"></a><tt class="py-lineno">3865</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">,</tt> </tt>
-<a name="L3866"></a><tt class="py-lineno">3866</tt>  <tt class="py-line">            <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-18');">_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="L3867"></a><tt class="py-lineno">3867</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-4027" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4027', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">div</tt><tt class="py-op">,</tt> <tt id="link-4028" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4028', 'method', 'link-4022');">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="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>
-<a name="L3869"></a><tt class="py-lineno">3869</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">,</tt> </tt>
-<a name="L3870"></a><tt class="py-lineno">3870</tt>  <tt class="py-line">            <tt id="link-4029" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4029', '_bytes', 'link-18');">_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="L3871"></a><tt class="py-lineno">3871</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_standalone"></a><div id="ETreeOnlyTestCase.test_standalone-def"><a name="L3872"></a><tt class="py-lineno">3872</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="L3873"></a><tt class="py-lineno">3873</tt>  <tt class="py-line">        <tt id="link-4030" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4030', 'tostring', 'link-237');">tostring</a></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
+lxml.tests.selftest2.find" class="py-name" href="#" onclick="return doclink('link-4016', 'find', 'link-3156');">find</a></tt><tt class="py-op">(</tt><tt class="py-string">'.//div'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3871"></a><tt class="py-lineno">3871</tt>  <tt class="py-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-4017" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-4017', 'tail', 'link-978');">tail</a></tt><tt class="py-op">,</tt> <tt class="py-string">'\r\n'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3872"></a><tt class="py-lineno">3872</tt>  <tt class="py-line">        <tt class="py-name">result</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-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">div</tt><tt class="py-op">,</tt> <tt id="link-4019" 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-4019', 'method', 'link-4019');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'html'</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>
+<a name="L3874"></a><tt class="py-lineno">3874</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">,</tt> </tt>
+<a name="L3875"></a><tt class="py-lineno">3875</tt>  <tt class="py-line">            <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-18');">_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="L3876"></a><tt class="py-lineno">3876</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-4021" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4021', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">div</tt><tt class="py-op">,</tt> <tt id="link-4022" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4022', 'method', 'link-4019');">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="L3877"></a><tt class="py-lineno">3877</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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">result</tt><tt class="py-op">,</tt> </tt>
+<a name="L3879"></a><tt class="py-lineno">3879</tt>  <tt class="py-line">            <tt id="link-4023" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4023', '_bytes', 'link-18');">_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="L3880"></a><tt class="py-lineno">3880</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-4024" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4024', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">div</tt><tt class="py-op">,</tt> <tt id="link-4025" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4025', 'method', 'link-4019');">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="L3881"></a><tt class="py-lineno">3881</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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">result</tt><tt class="py-op">,</tt> </tt>
+<a name="L3883"></a><tt class="py-lineno">3883</tt>  <tt class="py-line">            <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-18');">_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="L3884"></a><tt class="py-lineno">3884</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_standalone"></a><div id="ETreeOnlyTestCase.test_standalone-def"><a name="L3885"></a><tt class="py-lineno">3885</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="L3886"></a><tt class="py-lineno">3886</tt>  <tt class="py-line">        <tt id="link-4027" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4027', 'tostring', 'link-237');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4028" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -12647,12 +12643,12 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4031', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4032" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4032', 'tostring', 'link-237');">tostring</a></tt> </tt>
-<a name="L3874"></a><tt class="py-lineno">3874</tt>  <tt class="py-line">        <tt id="link-4033" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4028', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4029" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4029', 'tostring', 'link-237');">tostring</a></tt> </tt>
+<a name="L3887"></a><tt class="py-lineno">3887</tt>  <tt class="py-line">        <tt id="link-4030" 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-4033', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4034" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-4030', 'XML', 'link-234');">XML</a></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
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -12660,13 +12656,13 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4034', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4035" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4031', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4032" 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-4035', 'XML', 'link-234');">XML</a></tt> </tt>
-<a name="L3875"></a><tt class="py-lineno">3875</tt>  <tt class="py-line">        <tt id="link-4036" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-4032', 'XML', 'link-234');">XML</a></tt> </tt>
+<a name="L3888"></a><tt class="py-lineno">3888</tt>  <tt class="py-line">        <tt id="link-4033" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-4036', 'ElementTree', 'link-573');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4037" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-4033', 'ElementTree', 'link-570');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4034" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -12674,13 +12670,13 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4037', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4038" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4034', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4035" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-4038', 'ElementTree', 'link-573');">ElementTree</a></tt> </tt>
-<a name="L3876"></a><tt class="py-lineno">3876</tt>  <tt class="py-line">        <tt id="link-4039" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-4035', 'ElementTree', 'link-570');">ElementTree</a></tt> </tt>
+<a name="L3889"></a><tt class="py-lineno">3889</tt>  <tt class="py-line">        <tt id="link-4036" 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-4039', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4040" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-4036', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4037" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -12688,42 +12684,42 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4040', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4041" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4037', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4038" 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-4041', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L3877"></a><tt class="py-lineno">3877</tt>  <tt class="py-line"> </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 id="link-4042" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-4038', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L3890"></a><tt class="py-lineno">3890</tt>  <tt class="py-line"> </tt>
+<a name="L3891"></a><tt class="py-lineno">3891</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-4039" 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-4042', 'Element', 'link-69');">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-4043" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-4043', 'getroottree', 'link-2696');">getroottree</a></tt><tt class="py-op">(</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">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-4044" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-4044', 'docinfo', 'link-3654');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-4045" 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-4045', 'standalone', 'link-4045');">standalone</a></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">tree</tt> <tt class="py-op">=</tt> <tt id="link-4046" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-4039', 'Element', 'link-69');">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-4040" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-4040', 'getroottree', 'link-2693');">getroottree</a></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 class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4041" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-4041', 'docinfo', 'link-3651');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-4042" 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-4042', 'standalone', 'link-4042');">standalone</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3893"></a><tt class="py-lineno">3893</tt>  <tt class="py-line"> </tt>
+<a name="L3894"></a><tt class="py-lineno">3894</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-4043" 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-4046', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-4047" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4047', '_bytes', 'link-18');">_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-4048" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-4048', 'getroottree', 'link-2696');">getroottree</a></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 class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4049" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-4049', 'docinfo', 'link-3654');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-4050" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-4050', 'standalone', 'link-4045');">standalone</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3883"></a><tt class="py-lineno">3883</tt>  <tt class="py-line"> </tt>
-<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 id="link-4051" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-4043', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-4044" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4044', '_bytes', 'link-18');">_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-4045" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-4045', 'getroottree', 'link-2693');">getroottree</a></tt><tt class="py-op">(</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">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-4046" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-4046', 'docinfo', 'link-3651');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-4047" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-4047', 'standalone', 'link-4042');">standalone</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3896"></a><tt class="py-lineno">3896</tt>  <tt class="py-line"> </tt>
+<a name="L3897"></a><tt class="py-lineno">3897</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.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-4051', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-4052" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4052', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3885"></a><tt class="py-lineno">3885</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="L3886"></a><tt class="py-lineno">3886</tt>  <tt class="py-line">            <tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-4053" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-4053', 'getroottree', 'link-2696');">getroottree</a></tt><tt class="py-op">(</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">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-4054" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-4054', 'docinfo', 'link-3654');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-4055" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-4055', 'standalone', 'link-4045');">standalone</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3888"></a><tt class="py-lineno">3888</tt>  <tt class="py-line"> </tt>
-<a name="L3889"></a><tt class="py-lineno">3889</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-4056" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-4048', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-4049" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4049', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3898"></a><tt class="py-lineno">3898</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="L3899"></a><tt class="py-lineno">3899</tt>  <tt class="py-line">            <tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-4050" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-4050', 'getroottree', 'link-2693');">getroottree</a></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-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-4051" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-4051', 'docinfo', 'link-3651');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-4052" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-4052', 'standalone', 'link-4042');">standalone</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3901"></a><tt class="py-lineno">3901</tt>  <tt class="py-line"> </tt>
+<a name="L3902"></a><tt class="py-lineno">3902</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-4053" 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-4056', 'XML', 'link-234');">XML</a></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-18');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3890"></a><tt class="py-lineno">3890</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="L3891"></a><tt class="py-lineno">3891</tt>  <tt class="py-line">            <tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-4058" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-4058', 'getroottree', 'link-2696');">getroottree</a></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 class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4059" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-4059', 'docinfo', 'link-3654');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-4060" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-4060', 'standalone', 'link-4045');">standalone</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3893"></a><tt class="py-lineno">3893</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tostring_standalone"></a><div id="ETreeOnlyTestCase.test_tostring_standalone-def"><a name="L3894"></a><tt class="py-lineno">3894</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="L3895"></a><tt class="py-lineno">3895</tt>  <tt class="py-line">        <tt id="link-4061" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4061', 'tostring', 'link-237');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4062" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-4053', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-4054" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4054', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3903"></a><tt class="py-lineno">3903</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="L3904"></a><tt class="py-lineno">3904</tt>  <tt class="py-line">            <tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-4055" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-4055', 'getroottree', 'link-2693');">getroottree</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-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-4056" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-4056', 'docinfo', 'link-3651');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-4057" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-4057', 'standalone', 'link-4042');">standalone</a></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="ETreeOnlyTestCase.test_tostring_standalone"></a><div id="ETreeOnlyTestCase.test_tostring_standalone-def"><a name="L3907"></a><tt class="py-lineno">3907</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="L3908"></a><tt class="py-lineno">3908</tt>  <tt class="py-line">        <tt id="link-4058" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4058', 'tostring', 'link-237');">tostring</a></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
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -12731,12 +12727,12 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4062', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4063" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4063', 'tostring', 'link-237');">tostring</a></tt> </tt>
-<a name="L3896"></a><tt class="py-lineno">3896</tt>  <tt class="py-line">        <tt id="link-4064" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4059', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4060" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4060', 'tostring', 'link-237');">tostring</a></tt> </tt>
+<a name="L3909"></a><tt class="py-lineno">3909</tt>  <tt class="py-line">        <tt id="link-4061" 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-4064', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4065" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-4061', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4062" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -12744,13 +12740,13 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4065', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4066" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4062', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4063" 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-4066', 'XML', 'link-234');">XML</a></tt> </tt>
-<a name="L3897"></a><tt class="py-lineno">3897</tt>  <tt class="py-line">        <tt id="link-4067" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-4063', 'XML', 'link-234');">XML</a></tt> </tt>
+<a name="L3910"></a><tt class="py-lineno">3910</tt>  <tt class="py-line">        <tt id="link-4064" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-4067', 'ElementTree', 'link-573');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4068" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-4064', 'ElementTree', 'link-570');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4065" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -12758,62 +12754,62 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4068', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4069" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4065', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4066" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-4069', 'ElementTree', 'link-573');">ElementTree</a></tt> </tt>
-<a name="L3898"></a><tt class="py-lineno">3898</tt>  <tt class="py-line"> </tt>
-<a name="L3899"></a><tt class="py-lineno">3899</tt>  <tt class="py-line">        <tt id="link-4070" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4070', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-4071" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-4066', 'ElementTree', 'link-570');">ElementTree</a></tt> </tt>
+<a name="L3911"></a><tt class="py-lineno">3911</tt>  <tt class="py-line"> </tt>
+<a name="L3912"></a><tt class="py-lineno">3912</tt>  <tt class="py-line">        <tt id="link-4067" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4067', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-4068" 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-4071', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-4072" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4072', '_bytes', 'link-18');">_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="L3900"></a><tt class="py-lineno">3900</tt>  <tt class="py-line"> </tt>
-<a name="L3901"></a><tt class="py-lineno">3901</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-4073" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-4068', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-4069" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4069', '_bytes', 'link-18');">_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="L3913"></a><tt class="py-lineno">3913</tt>  <tt class="py-line"> </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-4070" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-4073', 'ElementTree', 'link-573');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-4074" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4074', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3902"></a><tt class="py-lineno">3902</tt>  <tt class="py-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-4075" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-4075', 'docinfo', 'link-3654');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-4076" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-4076', 'standalone', 'link-4045');">standalone</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3903"></a><tt class="py-lineno">3903</tt>  <tt class="py-line"> </tt>
-<a name="L3904"></a><tt class="py-lineno">3904</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-4077" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4077', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-4078" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4078', 'root', 'link-247');">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-4079" class="py-name"><a title="lxml.etree.DocInfo.encoding
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-4070', 'ElementTree', 'link-570');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-4071" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4071', 'root', 'link-247');">root</a></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">None</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4072" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-4072', 'docinfo', 'link-3651');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-4073" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-4073', 'standalone', 'link-4042');">standalone</a></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">result</tt> <tt class="py-op">=</tt> <tt id="link-4074" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4074', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-4075" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4075', 'root', 'link-247');">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-4076" class="py-name"><a title="lxml.etree.DocInfo.encoding
 lxml.tests.selftest.encoding
-lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-4079', 'encoding', 'link-1042');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"ASCII"</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">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-4080" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4080', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3906"></a><tt class="py-lineno">3906</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="L3907"></a><tt class="py-lineno">3907</tt>  <tt class="py-line"> </tt>
-<a name="L3908"></a><tt class="py-lineno">3908</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-4081" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4081', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-4082" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4082', 'root', 'link-247');">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-4083" class="py-name"><a title="lxml.etree.DocInfo.encoding
+lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-4076', 'encoding', 'link-1039');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"ASCII"</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">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-4077" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4077', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3919"></a><tt class="py-lineno">3919</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="L3920"></a><tt class="py-lineno">3920</tt>  <tt class="py-line"> </tt>
+<a name="L3921"></a><tt class="py-lineno">3921</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-4078" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4078', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-4079" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4079', 'root', 'link-247');">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-4080" class="py-name"><a title="lxml.etree.DocInfo.encoding
 lxml.tests.selftest.encoding
-lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-4083', 'encoding', 'link-1042');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"ASCII"</tt><tt class="py-op">,</tt> </tt>
-<a name="L3909"></a><tt class="py-lineno">3909</tt>  <tt class="py-line">                          <tt id="link-4084" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-4084', 'standalone', 'link-4045');">standalone</a></tt><tt class="py-op">=</tt><tt class="py-name">True</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">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-4085" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4085', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3911"></a><tt class="py-lineno">3911</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="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">tree</tt> <tt class="py-op">=</tt> <tt id="link-4086" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-4080', 'encoding', 'link-1039');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"ASCII"</tt><tt class="py-op">,</tt> </tt>
+<a name="L3922"></a><tt class="py-lineno">3922</tt>  <tt class="py-line">                          <tt id="link-4081" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-4081', 'standalone', 'link-4042');">standalone</a></tt><tt class="py-op">=</tt><tt class="py-name">True</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">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-4082" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4082', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3924"></a><tt class="py-lineno">3924</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="L3925"></a><tt class="py-lineno">3925</tt>  <tt class="py-line"> </tt>
+<a name="L3926"></a><tt class="py-lineno">3926</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-4083" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-4086', 'ElementTree', 'link-573');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-4087" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-4083', 'ElementTree', 'link-570');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-4084" 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-4087', 'XML', 'link-234');">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="L3914"></a><tt class="py-lineno">3914</tt>  <tt class="py-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-4088" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-4088', 'docinfo', 'link-3654');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-4089" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-4089', 'standalone', 'link-4045');">standalone</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3915"></a><tt class="py-lineno">3915</tt>  <tt class="py-line"> </tt>
-<a name="L3916"></a><tt class="py-lineno">3916</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-4090" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4090', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-4091" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4091', 'root', 'link-247');">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-4092" class="py-name"><a title="lxml.etree.DocInfo.encoding
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-4084', 'XML', 'link-234');">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="L3927"></a><tt class="py-lineno">3927</tt>  <tt class="py-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-4085" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-4085', 'docinfo', 'link-3651');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-4086" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-4086', 'standalone', 'link-4042');">standalone</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3928"></a><tt class="py-lineno">3928</tt>  <tt class="py-line"> </tt>
+<a name="L3929"></a><tt class="py-lineno">3929</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-4087" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4087', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-4088" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4088', 'root', 'link-247');">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-4089" class="py-name"><a title="lxml.etree.DocInfo.encoding
 lxml.tests.selftest.encoding
-lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-4092', 'encoding', 'link-1042');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"ASCII"</tt><tt class="py-op">,</tt> </tt>
-<a name="L3917"></a><tt class="py-lineno">3917</tt>  <tt class="py-line">                          <tt id="link-4093" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-4093', 'standalone', 'link-4045');">standalone</a></tt><tt class="py-op">=</tt><tt class="py-name">False</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">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-4094" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4094', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3919"></a><tt class="py-lineno">3919</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="L3920"></a><tt class="py-lineno">3920</tt>  <tt class="py-line"> </tt>
-<a name="L3921"></a><tt class="py-lineno">3921</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-4095" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-4089', 'encoding', 'link-1039');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"ASCII"</tt><tt class="py-op">,</tt> </tt>
+<a name="L3930"></a><tt class="py-lineno">3930</tt>  <tt class="py-line">                          <tt id="link-4090" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-4090', 'standalone', 'link-4042');">standalone</a></tt><tt class="py-op">=</tt><tt class="py-name">False</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">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-4091" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4091', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3932"></a><tt class="py-lineno">3932</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="L3933"></a><tt class="py-lineno">3933</tt>  <tt class="py-line"> </tt>
+<a name="L3934"></a><tt class="py-lineno">3934</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-4092" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-4095', 'ElementTree', 'link-573');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-4096" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-4092', 'ElementTree', 'link-570');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-4093" 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-4096', 'XML', 'link-234');">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="L3922"></a><tt class="py-lineno">3922</tt>  <tt class="py-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-4097" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-4097', 'docinfo', 'link-3654');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-4098" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-4098', 'standalone', 'link-4045');">standalone</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3923"></a><tt class="py-lineno">3923</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="L3924"></a><tt class="py-lineno">3924</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="L3925"></a><tt class="py-lineno">3925</tt>  <tt class="py-line">        <tt id="link-4099" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4099', 'tostring', 'link-237');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4100" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-4093', 'XML', 'link-234');">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="L3935"></a><tt class="py-lineno">3935</tt>  <tt class="py-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-4094" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-4094', 'docinfo', 'link-3651');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-4095" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-4095', 'standalone', 'link-4042');">standalone</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3936"></a><tt class="py-lineno">3936</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="L3937"></a><tt class="py-lineno">3937</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="L3938"></a><tt class="py-lineno">3938</tt>  <tt class="py-line">        <tt id="link-4096" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4096', 'tostring', 'link-237');">tostring</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.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -12821,12 +12817,12 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4100', 'etree', 'link-3');">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-237');">tostring</a></tt> </tt>
-<a name="L3926"></a><tt class="py-lineno">3926</tt>  <tt class="py-line">        <tt id="link-4102" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4097', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4098" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4098', 'tostring', 'link-237');">tostring</a></tt> </tt>
+<a name="L3939"></a><tt class="py-lineno">3939</tt>  <tt class="py-line">        <tt id="link-4099" 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-4102', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4103" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-4099', 'XML', 'link-234');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</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.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -12834,13 +12830,13 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4103', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4104" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4100', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4101" 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-4104', 'XML', 'link-234');">XML</a></tt> </tt>
-<a name="L3927"></a><tt class="py-lineno">3927</tt>  <tt class="py-line">        <tt id="link-4105" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-4101', 'XML', 'link-234');">XML</a></tt> </tt>
+<a name="L3940"></a><tt class="py-lineno">3940</tt>  <tt class="py-line">        <tt id="link-4102" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-4105', 'ElementTree', 'link-573');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4106" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-4102', 'ElementTree', 'link-570');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4103" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -12848,39 +12844,39 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4106', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4107" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4103', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4104" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-4107', 'ElementTree', 'link-573');">ElementTree</a></tt> </tt>
-<a name="L3928"></a><tt class="py-lineno">3928</tt>  <tt class="py-line"> </tt>
-<a name="L3929"></a><tt class="py-lineno">3929</tt>  <tt class="py-line">        <tt id="link-4108" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4108', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-4109" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-4104', 'ElementTree', 'link-570');">ElementTree</a></tt> </tt>
+<a name="L3941"></a><tt class="py-lineno">3941</tt>  <tt class="py-line"> </tt>
+<a name="L3942"></a><tt class="py-lineno">3942</tt>  <tt class="py-line">        <tt id="link-4105" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4105', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-4106" 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-4109', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-4110" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4110', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3930"></a><tt class="py-lineno">3930</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="L3931"></a><tt class="py-lineno">3931</tt>  <tt class="py-line"> </tt>
-<a name="L3932"></a><tt class="py-lineno">3932</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-4111" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-4106', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-4107" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4107', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3943"></a><tt class="py-lineno">3943</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="L3944"></a><tt class="py-lineno">3944</tt>  <tt class="py-line"> </tt>
+<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 id="link-4108" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-4111', 'ElementTree', 'link-573');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-4112" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4112', 'root', 'link-247');">root</a></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">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-4113" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-4113', 'docinfo', 'link-3654');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-4114" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-4114', 'standalone', 'link-4045');">standalone</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3934"></a><tt class="py-lineno">3934</tt>  <tt class="py-line"> </tt>
-<a name="L3935"></a><tt class="py-lineno">3935</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-4115" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4115', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-4116" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4116', 'root', 'link-247');">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-4117" class="py-name"><a title="lxml.etree.DocInfo.encoding
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-4108', 'ElementTree', 'link-570');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-4109" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4109', 'root', 'link-247');">root</a></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">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-4110" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-4110', 'docinfo', 'link-3651');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-4111" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-4111', 'standalone', 'link-4042');">standalone</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3947"></a><tt class="py-lineno">3947</tt>  <tt class="py-line"> </tt>
+<a name="L3948"></a><tt class="py-lineno">3948</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-4112" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4112', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-4113" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4113', 'root', 'link-247');">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-4114" class="py-name"><a title="lxml.etree.DocInfo.encoding
 lxml.tests.selftest.encoding
-lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-4117', 'encoding', 'link-1042');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"ASCII"</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">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-4118" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4118', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3937"></a><tt class="py-lineno">3937</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="L3938"></a><tt class="py-lineno">3938</tt>  <tt class="py-line"> </tt>
-<a name="L3939"></a><tt class="py-lineno">3939</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-4119" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4119', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-4120" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4120', 'root', 'link-247');">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-4121" class="py-name"><a title="lxml.etree.DocInfo.encoding
+lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-4114', 'encoding', 'link-1039');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"ASCII"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3949"></a><tt class="py-lineno">3949</tt>  <tt class="py-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-4115" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4115', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3950"></a><tt class="py-lineno">3950</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="L3951"></a><tt class="py-lineno">3951</tt>  <tt class="py-line"> </tt>
+<a name="L3952"></a><tt class="py-lineno">3952</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-4116" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4116', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-4117" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4117', 'root', 'link-247');">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-4118" class="py-name"><a title="lxml.etree.DocInfo.encoding
 lxml.tests.selftest.encoding
-lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-4121', 'encoding', 'link-1042');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"ASCII"</tt><tt class="py-op">,</tt> </tt>
-<a name="L3940"></a><tt class="py-lineno">3940</tt>  <tt class="py-line">                          <tt id="link-4122" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-4122', 'standalone', 'link-4045');">standalone</a></tt><tt class="py-op">=</tt><tt class="py-name">True</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 class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-4123" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4123', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3942"></a><tt class="py-lineno">3942</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="L3943"></a><tt class="py-lineno">3943</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="L3944"></a><tt class="py-lineno">3944</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="L3945"></a><tt class="py-lineno">3945</tt>  <tt class="py-line">        <tt id="link-4124" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4124', 'tostring', 'link-237');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4125" class="py-name"><a title="lxml.etree
+lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-4118', 'encoding', 'link-1039');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"ASCII"</tt><tt class="py-op">,</tt> </tt>
+<a name="L3953"></a><tt class="py-lineno">3953</tt>  <tt class="py-line">                          <tt id="link-4119" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-4119', 'standalone', 'link-4042');">standalone</a></tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L3954"></a><tt class="py-lineno">3954</tt>  <tt class="py-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-4120" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4120', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3955"></a><tt class="py-lineno">3955</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="L3956"></a><tt class="py-lineno">3956</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="L3957"></a><tt class="py-lineno">3957</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="L3958"></a><tt class="py-lineno">3958</tt>  <tt class="py-line">        <tt id="link-4121" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4121', 'tostring', 'link-237');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4122" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -12888,12 +12884,12 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4125', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4126" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4126', 'tostring', 'link-237');">tostring</a></tt> </tt>
-<a name="L3946"></a><tt class="py-lineno">3946</tt>  <tt class="py-line">        <tt id="link-4127" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4122', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4123" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4123', 'tostring', 'link-237');">tostring</a></tt> </tt>
+<a name="L3959"></a><tt class="py-lineno">3959</tt>  <tt class="py-line">        <tt id="link-4124" 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-4127', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4128" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-4124', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4125" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -12901,11 +12897,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4128', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4129" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4125', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4126" 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-4129', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L3947"></a><tt class="py-lineno">3947</tt>  <tt class="py-line">        <tt id="link-4130" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4130', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4131" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-4126', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L3960"></a><tt class="py-lineno">3960</tt>  <tt class="py-line">        <tt id="link-4127" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4127', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4128" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -12913,45 +12909,45 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4131', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4132" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4132', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
-<a name="L3948"></a><tt class="py-lineno">3948</tt>  <tt class="py-line">         </tt>
-<a name="L3949"></a><tt class="py-lineno">3949</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-4133" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4128', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4129" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4129', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
+<a name="L3961"></a><tt class="py-lineno">3961</tt>  <tt class="py-line">         </tt>
+<a name="L3962"></a><tt class="py-lineno">3962</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-4130" 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-4133', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3950"></a><tt class="py-lineno">3950</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-4134" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-4130', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3963"></a><tt class="py-lineno">3963</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-4131" 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-4134', 'text', 'link-205');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"A"</tt> </tt>
-<a name="L3951"></a><tt class="py-lineno">3951</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-4135" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-4135', 'tail', 'link-981');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"tail"</tt> </tt>
-<a name="L3952"></a><tt class="py-lineno">3952</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-4136" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4136', 'SubElement', 'link-112');">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="L3953"></a><tt class="py-lineno">3953</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-4137" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-4131', 'text', 'link-205');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"A"</tt> </tt>
+<a name="L3964"></a><tt class="py-lineno">3964</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-4132" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-4132', 'tail', 'link-978');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"tail"</tt> </tt>
+<a name="L3965"></a><tt class="py-lineno">3965</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-4133" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4133', 'SubElement', 'link-112');">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="L3966"></a><tt class="py-lineno">3966</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-4134" 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-4137', 'text', 'link-205');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"B"</tt> </tt>
-<a name="L3954"></a><tt class="py-lineno">3954</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-4138" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-4138', 'tail', 'link-981');">tail</a></tt> <tt class="py-op">=</tt> <tt id="link-4139" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-4139', '_str', 'link-17');">_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="L3955"></a><tt class="py-lineno">3955</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-4140" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4140', 'SubElement', 'link-112');">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="L3956"></a><tt class="py-lineno">3956</tt>  <tt class="py-line">        <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-4141" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-4134', 'text', 'link-205');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"B"</tt> </tt>
+<a name="L3967"></a><tt class="py-lineno">3967</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-4135" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-4135', 'tail', 'link-978');">tail</a></tt> <tt class="py-op">=</tt> <tt id="link-4136" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-4136', '_str', 'link-17');">_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="L3968"></a><tt class="py-lineno">3968</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-4137" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4137', 'SubElement', 'link-112');">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="L3969"></a><tt class="py-lineno">3969</tt>  <tt class="py-line">        <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-4138" 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-4141', 'text', 'link-205');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"C"</tt> </tt>
-<a name="L3957"></a><tt class="py-lineno">3957</tt>  <tt class="py-line"> </tt>
-<a name="L3958"></a><tt class="py-lineno">3958</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-4142" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4142', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-4143" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4143', 'method', 'link-4022');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">"text"</tt><tt class="py-op">,</tt> <tt id="link-4144" class="py-name"><a title="lxml.etree.DocInfo.encoding
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-4138', 'text', 'link-205');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"C"</tt> </tt>
+<a name="L3970"></a><tt class="py-lineno">3970</tt>  <tt class="py-line"> </tt>
+<a name="L3971"></a><tt class="py-lineno">3971</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-4139" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4139', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-4140" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4140', 'method', 'link-4019');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">"text"</tt><tt class="py-op">,</tt> <tt id="link-4141" class="py-name"><a title="lxml.etree.DocInfo.encoding
 lxml.tests.selftest.encoding
-lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-4144', 'encoding', 'link-1042');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"UTF-16"</tt><tt class="py-op">)</tt> </tt>
-<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 class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-4145" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-4145', '_str', 'link-17');">_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="L3961"></a><tt class="py-lineno">3961</tt>  <tt class="py-line">                          <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3962"></a><tt class="py-lineno">3962</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="L3963"></a><tt class="py-lineno">3963</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="L3964"></a><tt class="py-lineno">3964</tt>  <tt class="py-line">        <tt id="link-4146" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4146', 'tostring', 'link-237');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4147" class="py-name"><a title="lxml.etree
+lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-4141', 'encoding', 'link-1039');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"UTF-16"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3972"></a><tt class="py-lineno">3972</tt>  <tt class="py-line"> </tt>
+<a name="L3973"></a><tt class="py-lineno">3973</tt>  <tt class="py-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-4142" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-4142', '_str', 'link-17');">_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="L3974"></a><tt class="py-lineno">3974</tt>  <tt class="py-line">                          <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3975"></a><tt class="py-lineno">3975</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="L3976"></a><tt class="py-lineno">3976</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="L3977"></a><tt class="py-lineno">3977</tt>  <tt class="py-line">        <tt id="link-4143" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4143', 'tostring', 'link-237');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4144" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -12959,12 +12955,12 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4147', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4148" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4148', 'tostring', 'link-237');">tostring</a></tt> </tt>
-<a name="L3965"></a><tt class="py-lineno">3965</tt>  <tt class="py-line">        <tt id="link-4149" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4144', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4145" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4145', 'tostring', 'link-237');">tostring</a></tt> </tt>
+<a name="L3978"></a><tt class="py-lineno">3978</tt>  <tt class="py-line">        <tt id="link-4146" 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-4149', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4150" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-4146', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4147" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -12972,11 +12968,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4150', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4151" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4147', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4148" 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-4151', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L3966"></a><tt class="py-lineno">3966</tt>  <tt class="py-line">        <tt id="link-4152" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4152', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4153" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-4148', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L3979"></a><tt class="py-lineno">3979</tt>  <tt class="py-line">        <tt id="link-4149" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4149', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4150" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -12984,47 +12980,47 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4153', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4154" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4154', 'SubElement', 'link-112');">SubElement</a></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">a</tt> <tt class="py-op">=</tt> <tt id="link-4155" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4150', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4151" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4151', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
+<a name="L3980"></a><tt class="py-lineno">3980</tt>  <tt class="py-line">         </tt>
+<a name="L3981"></a><tt class="py-lineno">3981</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-4152" 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-4155', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'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">a</tt><tt class="py-op">.</tt><tt id="link-4156" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-4152', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3982"></a><tt class="py-lineno">3982</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-4153" 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-4156', 'text', 'link-205');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-4157" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-4157', '_str', 'link-17');">_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="L3970"></a><tt class="py-lineno">3970</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-4158" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-4158', 'tail', 'link-981');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"tail"</tt> </tt>
-<a name="L3971"></a><tt class="py-lineno">3971</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-4159" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4159', 'SubElement', 'link-112');">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="L3972"></a><tt class="py-lineno">3972</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-4160" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-4153', 'text', 'link-205');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-4154" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-4154', '_str', 'link-17');">_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="L3983"></a><tt class="py-lineno">3983</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-4155" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-4155', 'tail', 'link-978');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"tail"</tt> </tt>
+<a name="L3984"></a><tt class="py-lineno">3984</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-4156" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4156', 'SubElement', 'link-112');">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="L3985"></a><tt class="py-lineno">3985</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-4157" 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-4160', 'text', 'link-205');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"B"</tt> </tt>
-<a name="L3973"></a><tt class="py-lineno">3973</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-4161" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-4161', 'tail', 'link-981');">tail</a></tt> <tt class="py-op">=</tt> <tt id="link-4162" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-4162', '_str', 'link-17');">_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="L3974"></a><tt class="py-lineno">3974</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-4163" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4163', 'SubElement', 'link-112');">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="L3975"></a><tt class="py-lineno">3975</tt>  <tt class="py-line">        <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-4164" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-4157', 'text', 'link-205');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"B"</tt> </tt>
+<a name="L3986"></a><tt class="py-lineno">3986</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-4158" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-4158', 'tail', 'link-978');">tail</a></tt> <tt class="py-op">=</tt> <tt id="link-4159" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-4159', '_str', 'link-17');">_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="L3987"></a><tt class="py-lineno">3987</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-4160" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4160', 'SubElement', 'link-112');">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="L3988"></a><tt class="py-lineno">3988</tt>  <tt class="py-line">        <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-4161" 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-4164', 'text', 'link-205');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"C"</tt> </tt>
-<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 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="L3978"></a><tt class="py-lineno">3978</tt>  <tt class="py-line">                          <tt id="link-4165" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4165', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-4166" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4166', 'method', 'link-4022');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">"text"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3979"></a><tt class="py-lineno">3979</tt>  <tt class="py-line">         </tt>
-<a name="L3980"></a><tt class="py-lineno">3980</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3981"></a><tt class="py-lineno">3981</tt>  <tt class="py-line">            <tt id="link-4167" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-4167', '_str', 'link-17');">_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="L3982"></a><tt class="py-lineno">3982</tt>  <tt class="py-line">            <tt id="link-4168" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4168', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-4169" class="py-name"><a title="lxml.etree.DocInfo.encoding
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-4161', 'text', 'link-205');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"C"</tt> </tt>
+<a name="L3989"></a><tt class="py-lineno">3989</tt>  <tt class="py-line">         </tt>
+<a name="L3990"></a><tt class="py-lineno">3990</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="L3991"></a><tt class="py-lineno">3991</tt>  <tt class="py-line">                          <tt id="link-4162" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4162', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-4163" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4163', 'method', 'link-4019');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">"text"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3992"></a><tt class="py-lineno">3992</tt>  <tt class="py-line">         </tt>
+<a name="L3993"></a><tt class="py-lineno">3993</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3994"></a><tt class="py-lineno">3994</tt>  <tt class="py-line">            <tt id="link-4164" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-4164', '_str', 'link-17');">_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="L3995"></a><tt class="py-lineno">3995</tt>  <tt class="py-line">            <tt id="link-4165" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4165', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-4166" class="py-name"><a title="lxml.etree.DocInfo.encoding
 lxml.tests.selftest.encoding
-lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-4169', 'encoding', 'link-1042');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"UTF-8"</tt><tt class="py-op">,</tt> <tt id="link-4170" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4170', 'method', 'link-4022');">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="L3983"></a><tt class="py-lineno">3983</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tounicode"></a><div id="ETreeOnlyTestCase.test_tounicode-def"><a name="L3984"></a><tt class="py-lineno">3984</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="L3985"></a><tt class="py-lineno">3985</tt>  <tt class="py-line">        <tt id="link-4171" 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-4171', 'tounicode', 'link-4171');">tounicode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4172" class="py-name"><a title="lxml.etree
+lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-4166', 'encoding', 'link-1039');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"UTF-8"</tt><tt class="py-op">,</tt> <tt id="link-4167" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4167', 'method', 'link-4019');">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="L3996"></a><tt class="py-lineno">3996</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tounicode"></a><div id="ETreeOnlyTestCase.test_tounicode-def"><a name="L3997"></a><tt class="py-lineno">3997</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="L3998"></a><tt class="py-lineno">3998</tt>  <tt class="py-line">        <tt id="link-4168" 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-4168', 'tounicode', 'link-4168');">tounicode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4169" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -13032,11 +13028,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4172', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4173" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-4173', 'tounicode', 'link-4171');">tounicode</a></tt> </tt>
-<a name="L3986"></a><tt class="py-lineno">3986</tt>  <tt class="py-line">        <tt id="link-4174" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4169', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4170" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-4170', 'tounicode', 'link-4168');">tounicode</a></tt> </tt>
+<a name="L3999"></a><tt class="py-lineno">3999</tt>  <tt class="py-line">        <tt id="link-4171" 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-4174', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4175" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-4171', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4172" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -13044,11 +13040,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4175', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4176" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4172', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4173" 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-4176', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L3987"></a><tt class="py-lineno">3987</tt>  <tt class="py-line">        <tt id="link-4177" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4177', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4178" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-4173', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L4000"></a><tt class="py-lineno">4000</tt>  <tt class="py-line">        <tt id="link-4174" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4174', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4175" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -13056,22 +13052,22 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4178', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4179" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4179', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
-<a name="L3988"></a><tt class="py-lineno">3988</tt>  <tt class="py-line">         </tt>
-<a name="L3989"></a><tt class="py-lineno">3989</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-4180" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4175', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4176" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4176', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
+<a name="L4001"></a><tt class="py-lineno">4001</tt>  <tt class="py-line">         </tt>
+<a name="L4002"></a><tt class="py-lineno">4002</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-4177" 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-4180', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'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">b</tt> <tt class="py-op">=</tt> <tt id="link-4181" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4181', 'SubElement', 'link-112');">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="L3991"></a><tt class="py-lineno">3991</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-4182" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4182', 'SubElement', 'link-112');">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="L3992"></a><tt class="py-lineno">3992</tt>  <tt class="py-line">         </tt>
-<a name="L3993"></a><tt class="py-lineno">3993</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-4183" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-4183', 'tounicode', 'link-4171');">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="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-4184" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4184', '_bytes', 'link-18');">_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="L3995"></a><tt class="py-lineno">3995</tt>  <tt class="py-line">                          <tt id="link-4185" class="py-name"><a title="lxml.etree.canonicalize
-lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-4185', 'canonicalize', 'link-16');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-4186" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-4186', 'tounicode', 'link-4171');">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="L3996"></a><tt class="py-lineno">3996</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tounicode_element"></a><div id="ETreeOnlyTestCase.test_tounicode_element-def"><a name="L3997"></a><tt class="py-lineno">3997</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="L3998"></a><tt class="py-lineno">3998</tt>  <tt class="py-line">        <tt id="link-4187" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-4187', 'tounicode', 'link-4171');">tounicode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4188" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-4177', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</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">b</tt> <tt class="py-op">=</tt> <tt id="link-4178" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4178', 'SubElement', 'link-112');">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="L4004"></a><tt class="py-lineno">4004</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-4179" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4179', 'SubElement', 'link-112');">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="L4005"></a><tt class="py-lineno">4005</tt>  <tt class="py-line">         </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 class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-4180" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-4180', 'tounicode', 'link-4168');">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="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 id="link-4181" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4181', '_bytes', 'link-18');">_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="L4008"></a><tt class="py-lineno">4008</tt>  <tt class="py-line">                          <tt id="link-4182" class="py-name"><a title="lxml.etree.canonicalize
+lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-4182', 'canonicalize', 'link-16');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-4183" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-4183', 'tounicode', 'link-4168');">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="L4009"></a><tt class="py-lineno">4009</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tounicode_element"></a><div id="ETreeOnlyTestCase.test_tounicode_element-def"><a name="L4010"></a><tt class="py-lineno">4010</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="L4011"></a><tt class="py-lineno">4011</tt>  <tt class="py-line">        <tt id="link-4184" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-4184', 'tounicode', 'link-4168');">tounicode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4185" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -13079,11 +13075,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4188', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4189" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-4189', 'tounicode', 'link-4171');">tounicode</a></tt> </tt>
-<a name="L3999"></a><tt class="py-lineno">3999</tt>  <tt class="py-line">        <tt id="link-4190" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4185', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4186" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-4186', 'tounicode', 'link-4168');">tounicode</a></tt> </tt>
+<a name="L4012"></a><tt class="py-lineno">4012</tt>  <tt class="py-line">        <tt id="link-4187" 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-4190', 'Element', 'link-69');">Element</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
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-4187', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4188" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -13091,11 +13087,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4191', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4192" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4188', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4189" 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-4192', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L4000"></a><tt class="py-lineno">4000</tt>  <tt class="py-line">        <tt id="link-4193" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4193', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4194" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-4189', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L4013"></a><tt class="py-lineno">4013</tt>  <tt class="py-line">        <tt id="link-4190" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4190', 'SubElement', 'link-112');">SubElement</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.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -13103,26 +13099,26 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4194', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4195" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4195', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
-<a name="L4001"></a><tt class="py-lineno">4001</tt>  <tt class="py-line">         </tt>
-<a name="L4002"></a><tt class="py-lineno">4002</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-4196" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4191', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4192" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4192', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
+<a name="L4014"></a><tt class="py-lineno">4014</tt>  <tt class="py-line">         </tt>
+<a name="L4015"></a><tt class="py-lineno">4015</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-4193" 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-4196', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</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">b</tt> <tt class="py-op">=</tt> <tt id="link-4197" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4197', 'SubElement', 'link-112');">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="L4004"></a><tt class="py-lineno">4004</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-4198" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4198', 'SubElement', 'link-112');">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="L4005"></a><tt class="py-lineno">4005</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-4199" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4199', 'SubElement', 'link-112');">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="L4006"></a><tt class="py-lineno">4006</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-4200" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-4200', 'tounicode', 'link-4171');">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="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">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-4201" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-4201', 'tounicode', 'link-4171');">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="L4008"></a><tt class="py-lineno">4008</tt>  <tt class="py-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-4202" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4202', '_bytes', 'link-18');">_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="L4009"></a><tt class="py-lineno">4009</tt>  <tt class="py-line">                          <tt id="link-4203" class="py-name"><a title="lxml.etree.canonicalize
-lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-4203', 'canonicalize', 'link-16');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-4204" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-4204', 'tounicode', 'link-4171');">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="L4010"></a><tt class="py-lineno">4010</tt>  <tt class="py-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-4205" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4205', '_bytes', 'link-18');">_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="L4011"></a><tt class="py-lineno">4011</tt>  <tt class="py-line">                          <tt id="link-4206" class="py-name"><a title="lxml.etree.canonicalize
-lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-4206', 'canonicalize', 'link-16');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-4207" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-4207', 'tounicode', 'link-4171');">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="L4012"></a><tt class="py-lineno">4012</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tounicode_none"></a><div id="ETreeOnlyTestCase.test_tounicode_none-def"><a name="L4013"></a><tt class="py-lineno">4013</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="L4014"></a><tt class="py-lineno">4014</tt>  <tt class="py-line">        <tt id="link-4208" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-4208', 'tounicode', 'link-4171');">tounicode</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
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-4193', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L4016"></a><tt class="py-lineno">4016</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-4194" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4194', 'SubElement', 'link-112');">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="L4017"></a><tt class="py-lineno">4017</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-4195" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4195', 'SubElement', 'link-112');">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="L4018"></a><tt class="py-lineno">4018</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-4196" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4196', 'SubElement', 'link-112');">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="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-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-4197" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-4197', 'tounicode', 'link-4168');">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="L4020"></a><tt class="py-lineno">4020</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-4198" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-4198', 'tounicode', 'link-4168');">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="L4021"></a><tt class="py-lineno">4021</tt>  <tt class="py-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-4199" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4199', '_bytes', 'link-18');">_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="L4022"></a><tt class="py-lineno">4022</tt>  <tt class="py-line">                          <tt id="link-4200" class="py-name"><a title="lxml.etree.canonicalize
+lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-4200', 'canonicalize', 'link-16');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-4201" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-4201', 'tounicode', 'link-4168');">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="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 id="link-4202" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4202', '_bytes', 'link-18');">_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="L4024"></a><tt class="py-lineno">4024</tt>  <tt class="py-line">                          <tt id="link-4203" class="py-name"><a title="lxml.etree.canonicalize
+lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-4203', 'canonicalize', 'link-16');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-4204" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-4204', 'tounicode', 'link-4168');">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="L4025"></a><tt class="py-lineno">4025</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tounicode_none"></a><div id="ETreeOnlyTestCase.test_tounicode_none-def"><a name="L4026"></a><tt class="py-lineno">4026</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="L4027"></a><tt class="py-lineno">4027</tt>  <tt class="py-line">        <tt id="link-4205" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-4205', 'tounicode', 'link-4168');">tounicode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4206" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -13130,8 +13126,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4209', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4210" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-4210', 'tounicode', 'link-4171');">tounicode</a></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">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-4211" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4206', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4207" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-4207', 'tounicode', 'link-4168');">tounicode</a></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">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-4208" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -13139,10 +13135,10 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4211', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4212" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-4212', 'tounicode', 'link-4171');">tounicode</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L4016"></a><tt class="py-lineno">4016</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tounicode_element_tail"></a><div id="ETreeOnlyTestCase.test_tounicode_element_tail-def"><a name="L4017"></a><tt class="py-lineno">4017</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="L4018"></a><tt class="py-lineno">4018</tt>  <tt class="py-line">        <tt id="link-4213" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-4213', 'tounicode', 'link-4171');">tounicode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4214" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4208', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4209" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-4209', 'tounicode', 'link-4168');">tounicode</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L4029"></a><tt class="py-lineno">4029</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tounicode_element_tail"></a><div id="ETreeOnlyTestCase.test_tounicode_element_tail-def"><a name="L4030"></a><tt class="py-lineno">4030</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="L4031"></a><tt class="py-lineno">4031</tt>  <tt class="py-line">        <tt id="link-4210" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-4210', 'tounicode', 'link-4168');">tounicode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4211" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -13150,11 +13146,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4214', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4215" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-4215', 'tounicode', 'link-4171');">tounicode</a></tt> </tt>
-<a name="L4019"></a><tt class="py-lineno">4019</tt>  <tt class="py-line">        <tt id="link-4216" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4211', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4212" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-4212', 'tounicode', 'link-4168');">tounicode</a></tt> </tt>
+<a name="L4032"></a><tt class="py-lineno">4032</tt>  <tt class="py-line">        <tt id="link-4213" 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-4216', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4217" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-4213', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4214" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -13162,11 +13158,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4217', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4218" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4214', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4215" 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-4218', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L4020"></a><tt class="py-lineno">4020</tt>  <tt class="py-line">        <tt id="link-4219" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4219', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4220" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-4215', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L4033"></a><tt class="py-lineno">4033</tt>  <tt class="py-line">        <tt id="link-4216" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4216', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4217" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -13174,24 +13170,24 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4220', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4221" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4221', 'SubElement', 'link-112');">SubElement</a></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 class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-4222" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4217', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4218" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4218', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
+<a name="L4034"></a><tt class="py-lineno">4034</tt>  <tt class="py-line">         </tt>
+<a name="L4035"></a><tt class="py-lineno">4035</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-4219" 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-4222', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</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">b</tt> <tt class="py-op">=</tt> <tt id="link-4223" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4223', 'SubElement', 'link-112');">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="L4024"></a><tt class="py-lineno">4024</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-4224" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4224', 'SubElement', 'link-112');">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="L4025"></a><tt class="py-lineno">4025</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-4225" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4225', 'SubElement', 'link-112');">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="L4026"></a><tt class="py-lineno">4026</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-4226" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-4226', 'tail', 'link-981');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Foo'</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">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-4227" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-4227', 'tounicode', 'link-4171');">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="L4029"></a><tt class="py-lineno">4029</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-4228" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-4228', 'tounicode', 'link-4171');">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="L4030"></a><tt class="py-lineno">4030</tt>  <tt class="py-line">                     <tt id="link-4229" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-4229', 'tounicode', 'link-4171');">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="L4031"></a><tt class="py-lineno">4031</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tounicode_pretty"></a><div id="ETreeOnlyTestCase.test_tounicode_pretty-def"><a name="L4032"></a><tt class="py-lineno">4032</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="L4033"></a><tt class="py-lineno">4033</tt>  <tt class="py-line">        <tt id="link-4230" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-4230', 'tounicode', 'link-4171');">tounicode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4231" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-4219', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</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">b</tt> <tt class="py-op">=</tt> <tt id="link-4220" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4220', 'SubElement', 'link-112');">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="L4037"></a><tt class="py-lineno">4037</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-4221" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4221', 'SubElement', 'link-112');">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="L4038"></a><tt class="py-lineno">4038</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-4222" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4222', 'SubElement', 'link-112');">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="L4039"></a><tt class="py-lineno">4039</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-4223" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-4223', 'tail', 'link-978');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Foo'</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-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-4224" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-4224', 'tounicode', 'link-4168');">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="L4042"></a><tt class="py-lineno">4042</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-4225" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-4225', 'tounicode', 'link-4168');">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="L4043"></a><tt class="py-lineno">4043</tt>  <tt class="py-line">                     <tt id="link-4226" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-4226', 'tounicode', 'link-4168');">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="L4044"></a><tt class="py-lineno">4044</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tounicode_pretty"></a><div id="ETreeOnlyTestCase.test_tounicode_pretty-def"><a name="L4045"></a><tt class="py-lineno">4045</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="L4046"></a><tt class="py-lineno">4046</tt>  <tt class="py-line">        <tt id="link-4227" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-4227', 'tounicode', 'link-4168');">tounicode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4228" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -13199,11 +13195,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4231', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4232" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-4232', 'tounicode', 'link-4171');">tounicode</a></tt> </tt>
-<a name="L4034"></a><tt class="py-lineno">4034</tt>  <tt class="py-line">        <tt id="link-4233" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4228', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4229" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-4229', 'tounicode', 'link-4168');">tounicode</a></tt> </tt>
+<a name="L4047"></a><tt class="py-lineno">4047</tt>  <tt class="py-line">        <tt id="link-4230" 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-4233', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4234" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-4230', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4231" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -13211,11 +13207,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4234', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4235" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4231', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4232" 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-4235', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L4035"></a><tt class="py-lineno">4035</tt>  <tt class="py-line">        <tt id="link-4236" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4236', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4237" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-4232', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L4048"></a><tt class="py-lineno">4048</tt>  <tt class="py-line">        <tt id="link-4233" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4233', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4234" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -13223,27 +13219,27 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4237', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4238" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4238', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
-<a name="L4036"></a><tt class="py-lineno">4036</tt>  <tt class="py-line"> </tt>
-<a name="L4037"></a><tt class="py-lineno">4037</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-4239" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4234', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4235" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4235', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
+<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 class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-4236" 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-4239', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</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">b</tt> <tt class="py-op">=</tt> <tt id="link-4240" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4240', 'SubElement', 'link-112');">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="L4039"></a><tt class="py-lineno">4039</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-4241" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4241', 'SubElement', 'link-112');">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="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">result</tt> <tt class="py-op">=</tt> <tt id="link-4242" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-4242', 'tounicode', 'link-4171');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L4042"></a><tt class="py-lineno">4042</tt>  <tt class="py-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="L4043"></a><tt class="py-lineno">4043</tt>  <tt class="py-line"> </tt>
-<a name="L4044"></a><tt class="py-lineno">4044</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-4243" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-4243', 'tounicode', 'link-4171');">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="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">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="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 class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-4244" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-4244', 'tounicode', 'link-4171');">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="L4048"></a><tt class="py-lineno">4048</tt>  <tt class="py-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="L4049"></a><tt class="py-lineno">4049</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tostring_unicode"></a><div id="ETreeOnlyTestCase.test_tostring_unicode-def"><a name="L4050"></a><tt class="py-lineno">4050</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="L4051"></a><tt class="py-lineno">4051</tt>  <tt class="py-line">        <tt id="link-4245" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4245', 'tostring', 'link-237');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4246" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-4236', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L4051"></a><tt class="py-lineno">4051</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-4237" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4237', 'SubElement', 'link-112');">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="L4052"></a><tt class="py-lineno">4052</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-4238" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4238', 'SubElement', 'link-112');">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="L4053"></a><tt class="py-lineno">4053</tt>  <tt class="py-line"> </tt>
+<a name="L4054"></a><tt class="py-lineno">4054</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-4239" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-4239', 'tounicode', 'link-4168');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">a</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 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="L4056"></a><tt class="py-lineno">4056</tt>  <tt class="py-line"> </tt>
+<a name="L4057"></a><tt class="py-lineno">4057</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-4240" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-4240', 'tounicode', 'link-4168');">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="L4058"></a><tt class="py-lineno">4058</tt>  <tt class="py-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="L4059"></a><tt class="py-lineno">4059</tt>  <tt class="py-line"> </tt>
+<a name="L4060"></a><tt class="py-lineno">4060</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-4241" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-4241', 'tounicode', 'link-4168');">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="L4061"></a><tt class="py-lineno">4061</tt>  <tt class="py-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="L4062"></a><tt class="py-lineno">4062</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tostring_unicode"></a><div id="ETreeOnlyTestCase.test_tostring_unicode-def"><a name="L4063"></a><tt class="py-lineno">4063</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="L4064"></a><tt class="py-lineno">4064</tt>  <tt class="py-line">        <tt id="link-4242" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4242', 'tostring', 'link-237');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4243" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -13251,12 +13247,12 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4246', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4247" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4247', 'tostring', 'link-237');">tostring</a></tt> </tt>
-<a name="L4052"></a><tt class="py-lineno">4052</tt>  <tt class="py-line">        <tt id="link-4248" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4243', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4244" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4244', 'tostring', 'link-237');">tostring</a></tt> </tt>
+<a name="L4065"></a><tt class="py-lineno">4065</tt>  <tt class="py-line">        <tt id="link-4245" 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-4248', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4249" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-4245', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4246" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -13264,11 +13260,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4249', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4250" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4246', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4247" 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-4250', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L4053"></a><tt class="py-lineno">4053</tt>  <tt class="py-line">        <tt id="link-4251" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4251', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4252" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-4247', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L4066"></a><tt class="py-lineno">4066</tt>  <tt class="py-line">        <tt id="link-4248" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4248', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4249" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -13276,29 +13272,29 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4252', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4253" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4253', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
-<a name="L4054"></a><tt class="py-lineno">4054</tt>  <tt class="py-line">         </tt>
-<a name="L4055"></a><tt class="py-lineno">4055</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-4254" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4249', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4250" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4250', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
+<a name="L4067"></a><tt class="py-lineno">4067</tt>  <tt class="py-line">         </tt>
+<a name="L4068"></a><tt class="py-lineno">4068</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-4251" 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-4254', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'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">b</tt> <tt class="py-op">=</tt> <tt id="link-4255" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4255', 'SubElement', 'link-112');">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="L4057"></a><tt class="py-lineno">4057</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-4256" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4256', 'SubElement', 'link-112');">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="L4058"></a><tt class="py-lineno">4058</tt>  <tt class="py-line">         </tt>
-<a name="L4059"></a><tt class="py-lineno">4059</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-4257" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4257', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-4258" class="py-name"><a title="lxml.etree.DocInfo.encoding
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-4251', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L4069"></a><tt class="py-lineno">4069</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-4252" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4252', 'SubElement', 'link-112');">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="L4070"></a><tt class="py-lineno">4070</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-4253" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4253', 'SubElement', 'link-112');">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="L4071"></a><tt class="py-lineno">4071</tt>  <tt class="py-line">         </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 class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-4254" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4254', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-4255" class="py-name"><a title="lxml.etree.DocInfo.encoding
 lxml.tests.selftest.encoding
-lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-4258', 'encoding', 'link-1042');">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="L4060"></a><tt class="py-lineno">4060</tt>  <tt class="py-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-4259" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4259', '_bytes', 'link-18');">_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="L4061"></a><tt class="py-lineno">4061</tt>  <tt class="py-line">                          <tt id="link-4260" class="py-name"><a title="lxml.etree.canonicalize
-lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-4260', 'canonicalize', 'link-16');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-4261" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4261', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-4262" class="py-name"><a title="lxml.etree.DocInfo.encoding
+lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-4255', 'encoding', 'link-1039');">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="L4073"></a><tt class="py-lineno">4073</tt>  <tt class="py-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-4256" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4256', '_bytes', 'link-18');">_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="L4074"></a><tt class="py-lineno">4074</tt>  <tt class="py-line">                          <tt id="link-4257" class="py-name"><a title="lxml.etree.canonicalize
+lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-4257', 'canonicalize', 'link-16');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-4258" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4258', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-4259" class="py-name"><a title="lxml.etree.DocInfo.encoding
 lxml.tests.selftest.encoding
-lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-4262', 'encoding', 'link-1042');">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="L4062"></a><tt class="py-lineno">4062</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tostring_unicode_element"></a><div id="ETreeOnlyTestCase.test_tostring_unicode_element-def"><a name="L4063"></a><tt class="py-lineno">4063</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="L4064"></a><tt class="py-lineno">4064</tt>  <tt class="py-line">        <tt id="link-4263" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4263', 'tostring', 'link-237');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4264" class="py-name"><a title="lxml.etree
+lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-4259', 'encoding', 'link-1039');">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="L4075"></a><tt class="py-lineno">4075</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tostring_unicode_element"></a><div id="ETreeOnlyTestCase.test_tostring_unicode_element-def"><a name="L4076"></a><tt class="py-lineno">4076</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="L4077"></a><tt class="py-lineno">4077</tt>  <tt class="py-line">        <tt id="link-4260" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4260', 'tostring', 'link-237');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4261" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -13306,12 +13302,12 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4264', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4265" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4265', 'tostring', 'link-237');">tostring</a></tt> </tt>
-<a name="L4065"></a><tt class="py-lineno">4065</tt>  <tt class="py-line">        <tt id="link-4266" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4261', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4262" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4262', 'tostring', 'link-237');">tostring</a></tt> </tt>
+<a name="L4078"></a><tt class="py-lineno">4078</tt>  <tt class="py-line">        <tt id="link-4263" 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-4266', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4267" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-4263', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4264" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -13319,11 +13315,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4267', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4268" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4264', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4265" 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-4268', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L4066"></a><tt class="py-lineno">4066</tt>  <tt class="py-line">        <tt id="link-4269" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4269', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4270" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-4265', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L4079"></a><tt class="py-lineno">4079</tt>  <tt class="py-line">        <tt id="link-4266" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4266', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4267" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -13331,39 +13327,39 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4270', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4271" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4271', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
-<a name="L4067"></a><tt class="py-lineno">4067</tt>  <tt class="py-line">         </tt>
-<a name="L4068"></a><tt class="py-lineno">4068</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-4272" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4267', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4268" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4268', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
+<a name="L4080"></a><tt class="py-lineno">4080</tt>  <tt class="py-line">         </tt>
+<a name="L4081"></a><tt class="py-lineno">4081</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-4269" 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-4272', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L4069"></a><tt class="py-lineno">4069</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-4273" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4273', 'SubElement', 'link-112');">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="L4070"></a><tt class="py-lineno">4070</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-4274" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4274', 'SubElement', 'link-112');">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="L4071"></a><tt class="py-lineno">4071</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-4275" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4275', 'SubElement', 'link-112');">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="L4072"></a><tt class="py-lineno">4072</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-4276" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4276', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt id="link-4277" class="py-name"><a title="lxml.etree.DocInfo.encoding
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-4269', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L4082"></a><tt class="py-lineno">4082</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-4270" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4270', 'SubElement', 'link-112');">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="L4083"></a><tt class="py-lineno">4083</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-4271" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4271', 'SubElement', 'link-112');">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="L4084"></a><tt class="py-lineno">4084</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-4272" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4272', 'SubElement', 'link-112');">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="L4085"></a><tt class="py-lineno">4085</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-4273" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4273', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt id="link-4274" class="py-name"><a title="lxml.etree.DocInfo.encoding
 lxml.tests.selftest.encoding
-lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-4277', 'encoding', 'link-1042');">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="L4073"></a><tt class="py-lineno">4073</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-4278" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4278', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt id="link-4279" class="py-name"><a title="lxml.etree.DocInfo.encoding
+lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-4274', 'encoding', 'link-1039');">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="L4086"></a><tt class="py-lineno">4086</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-4275" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4275', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt id="link-4276" class="py-name"><a title="lxml.etree.DocInfo.encoding
 lxml.tests.selftest.encoding
-lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-4279', 'encoding', 'link-1042');">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="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 id="link-4280" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4280', '_bytes', 'link-18');">_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="L4075"></a><tt class="py-lineno">4075</tt>  <tt class="py-line">                          <tt id="link-4281" class="py-name"><a title="lxml.etree.canonicalize
-lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-4281', 'canonicalize', 'link-16');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-4282" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4282', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt id="link-4283" class="py-name"><a title="lxml.etree.DocInfo.encoding
+lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-4276', 'encoding', 'link-1039');">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="L4087"></a><tt class="py-lineno">4087</tt>  <tt class="py-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-4277" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4277', '_bytes', 'link-18');">_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="L4088"></a><tt class="py-lineno">4088</tt>  <tt class="py-line">                          <tt id="link-4278" class="py-name"><a title="lxml.etree.canonicalize
+lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-4278', 'canonicalize', 'link-16');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-4279" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4279', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt id="link-4280" class="py-name"><a title="lxml.etree.DocInfo.encoding
 lxml.tests.selftest.encoding
-lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-4283', 'encoding', 'link-1042');">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="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 id="link-4284" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4284', '_bytes', 'link-18');">_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="L4077"></a><tt class="py-lineno">4077</tt>  <tt class="py-line">                          <tt id="link-4285" class="py-name"><a title="lxml.etree.canonicalize
-lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-4285', 'canonicalize', 'link-16');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-4286" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4286', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt id="link-4287" class="py-name"><a title="lxml.etree.DocInfo.encoding
+lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-4280', 'encoding', 'link-1039');">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="L4089"></a><tt class="py-lineno">4089</tt>  <tt class="py-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-4281" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4281', '_bytes', 'link-18');">_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="L4090"></a><tt class="py-lineno">4090</tt>  <tt class="py-line">                          <tt id="link-4282" class="py-name"><a title="lxml.etree.canonicalize
+lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-4282', 'canonicalize', 'link-16');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-4283" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4283', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt id="link-4284" class="py-name"><a title="lxml.etree.DocInfo.encoding
 lxml.tests.selftest.encoding
-lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-4287', 'encoding', 'link-1042');">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="L4078"></a><tt class="py-lineno">4078</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tostring_unicode_none"></a><div id="ETreeOnlyTestCase.test_tostring_unicode_none-def"><a name="L4079"></a><tt class="py-lineno">4079</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="L4080"></a><tt class="py-lineno">4080</tt>  <tt class="py-line">        <tt id="link-4288" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4288', 'tostring', 'link-237');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4289" class="py-name"><a title="lxml.etree
+lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-4284', 'encoding', 'link-1039');">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="L4091"></a><tt class="py-lineno">4091</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tostring_unicode_none"></a><div id="ETreeOnlyTestCase.test_tostring_unicode_none-def"><a name="L4092"></a><tt class="py-lineno">4092</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="L4093"></a><tt class="py-lineno">4093</tt>  <tt class="py-line">        <tt id="link-4285" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4285', 'tostring', 'link-237');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4286" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -13371,9 +13367,9 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4289', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4290" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4290', 'tostring', 'link-237');">tostring</a></tt> </tt>
-<a name="L4081"></a><tt class="py-lineno">4081</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-4291" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4286', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4287" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4287', 'tostring', 'link-237');">tostring</a></tt> </tt>
+<a name="L4094"></a><tt class="py-lineno">4094</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-4288" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -13381,15 +13377,15 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4291', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4292" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4292', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L4082"></a><tt class="py-lineno">4082</tt>  <tt class="py-line">                          <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt id="link-4293" class="py-name"><a title="lxml.etree.DocInfo.encoding
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4288', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4289" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4289', 'tostring', 'link-237');">tostring</a></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">None</tt><tt class="py-op">,</tt> <tt id="link-4290" class="py-name"><a title="lxml.etree.DocInfo.encoding
 lxml.tests.selftest.encoding
-lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-4293', 'encoding', 'link-1042');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L4083"></a><tt class="py-lineno">4083</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="L4084"></a><tt class="py-lineno">4084</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="L4085"></a><tt class="py-lineno">4085</tt>  <tt class="py-line">        <tt id="link-4294" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4294', 'tostring', 'link-237');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4295" class="py-name"><a title="lxml.etree
+lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-4290', 'encoding', 'link-1039');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L4096"></a><tt class="py-lineno">4096</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="L4097"></a><tt class="py-lineno">4097</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="L4098"></a><tt class="py-lineno">4098</tt>  <tt class="py-line">        <tt id="link-4291" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4291', 'tostring', 'link-237');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4292" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -13397,12 +13393,12 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4295', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4296" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4296', 'tostring', 'link-237');">tostring</a></tt> </tt>
-<a name="L4086"></a><tt class="py-lineno">4086</tt>  <tt class="py-line">        <tt id="link-4297" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4292', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4293" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4293', 'tostring', 'link-237');">tostring</a></tt> </tt>
+<a name="L4099"></a><tt class="py-lineno">4099</tt>  <tt class="py-line">        <tt id="link-4294" 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-4297', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4298" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-4294', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4295" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -13410,11 +13406,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4298', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4299" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4295', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4296" 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-4299', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L4087"></a><tt class="py-lineno">4087</tt>  <tt class="py-line">        <tt id="link-4300" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4300', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4301" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-4296', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L4100"></a><tt class="py-lineno">4100</tt>  <tt class="py-line">        <tt id="link-4297" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4297', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4298" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -13422,34 +13418,34 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4301', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4302" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4302', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
-<a name="L4088"></a><tt class="py-lineno">4088</tt>  <tt class="py-line">         </tt>
-<a name="L4089"></a><tt class="py-lineno">4089</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-4303" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4298', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4299" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4299', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
+<a name="L4101"></a><tt class="py-lineno">4101</tt>  <tt class="py-line">         </tt>
+<a name="L4102"></a><tt class="py-lineno">4102</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-4300" 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-4303', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</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">b</tt> <tt class="py-op">=</tt> <tt id="link-4304" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4304', 'SubElement', 'link-112');">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="L4091"></a><tt class="py-lineno">4091</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-4305" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4305', 'SubElement', 'link-112');">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="L4092"></a><tt class="py-lineno">4092</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-4306" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4306', 'SubElement', 'link-112');">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="L4093"></a><tt class="py-lineno">4093</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-4307" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-4307', 'tail', 'link-981');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Foo'</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 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-4308" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4308', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt id="link-4309" class="py-name"><a title="lxml.etree.DocInfo.encoding
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-4300', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</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">b</tt> <tt class="py-op">=</tt> <tt id="link-4301" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4301', 'SubElement', 'link-112');">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="L4104"></a><tt class="py-lineno">4104</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-4302" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4302', 'SubElement', 'link-112');">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="L4105"></a><tt class="py-lineno">4105</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-4303" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4303', 'SubElement', 'link-112');">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="L4106"></a><tt class="py-lineno">4106</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-4304" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-4304', 'tail', 'link-978');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Foo'</tt> </tt>
+<a name="L4107"></a><tt class="py-lineno">4107</tt>  <tt class="py-line"> </tt>
+<a name="L4108"></a><tt class="py-lineno">4108</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-4305" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4305', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt id="link-4306" class="py-name"><a title="lxml.etree.DocInfo.encoding
 lxml.tests.selftest.encoding
-lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-4309', 'encoding', 'link-1042');">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="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">assertTrue</tt><tt class="py-op">(</tt><tt id="link-4310" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4310', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt id="link-4311" class="py-name"><a title="lxml.etree.DocInfo.encoding
+lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-4306', 'encoding', 'link-1039');">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="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">assertTrue</tt><tt class="py-op">(</tt><tt id="link-4307" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4307', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt id="link-4308" class="py-name"><a title="lxml.etree.DocInfo.encoding
 lxml.tests.selftest.encoding
-lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-4311', 'encoding', 'link-1042');">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="L4097"></a><tt class="py-lineno">4097</tt>  <tt class="py-line">                     <tt id="link-4312" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4312', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt id="link-4313" class="py-name"><a title="lxml.etree.DocInfo.encoding
+lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-4308', 'encoding', 'link-1039');">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="L4110"></a><tt class="py-lineno">4110</tt>  <tt class="py-line">                     <tt id="link-4309" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4309', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt id="link-4310" class="py-name"><a title="lxml.etree.DocInfo.encoding
 lxml.tests.selftest.encoding
-lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-4313', 'encoding', 'link-1042');">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="L4098"></a><tt class="py-lineno">4098</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tostring_unicode_pretty"></a><div id="ETreeOnlyTestCase.test_tostring_unicode_pretty-def"><a name="L4099"></a><tt class="py-lineno">4099</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="L4100"></a><tt class="py-lineno">4100</tt>  <tt class="py-line">        <tt id="link-4314" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4314', 'tostring', 'link-237');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4315" class="py-name"><a title="lxml.etree
+lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-4310', 'encoding', 'link-1039');">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="L4111"></a><tt class="py-lineno">4111</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tostring_unicode_pretty"></a><div id="ETreeOnlyTestCase.test_tostring_unicode_pretty-def"><a name="L4112"></a><tt class="py-lineno">4112</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="L4113"></a><tt class="py-lineno">4113</tt>  <tt class="py-line">        <tt id="link-4311" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4311', 'tostring', 'link-237');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4312" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -13457,12 +13453,12 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4315', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4316" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4316', 'tostring', 'link-237');">tostring</a></tt> </tt>
-<a name="L4101"></a><tt class="py-lineno">4101</tt>  <tt class="py-line">        <tt id="link-4317" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4312', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4313" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4313', 'tostring', 'link-237');">tostring</a></tt> </tt>
+<a name="L4114"></a><tt class="py-lineno">4114</tt>  <tt class="py-line">        <tt id="link-4314" 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-4317', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4318" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-4314', 'Element', 'link-69');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4315" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -13470,11 +13466,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4318', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4319" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4315', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4316" 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-4319', 'Element', 'link-69');">Element</a></tt> </tt>
-<a name="L4102"></a><tt class="py-lineno">4102</tt>  <tt class="py-line">        <tt id="link-4320" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4320', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4321" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-4316', 'Element', 'link-69');">Element</a></tt> </tt>
+<a name="L4115"></a><tt class="py-lineno">4115</tt>  <tt class="py-line">        <tt id="link-4317" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4317', 'SubElement', 'link-112');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4318" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -13482,35 +13478,35 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4321', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4322" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4322', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
-<a name="L4103"></a><tt class="py-lineno">4103</tt>  <tt class="py-line"> </tt>
-<a name="L4104"></a><tt class="py-lineno">4104</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-4323" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4318', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4319" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4319', 'SubElement', 'link-112');">SubElement</a></tt> </tt>
+<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-name">a</tt> <tt class="py-op">=</tt> <tt id="link-4320" 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-4323', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</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">b</tt> <tt class="py-op">=</tt> <tt id="link-4324" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4324', 'SubElement', 'link-112');">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="L4106"></a><tt class="py-lineno">4106</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-4325" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4325', 'SubElement', 'link-112');">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="L4107"></a><tt class="py-lineno">4107</tt>  <tt class="py-line"> </tt>
-<a name="L4108"></a><tt class="py-lineno">4108</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-4326" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4326', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-4327" class="py-name"><a title="lxml.etree.DocInfo.encoding
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-4320', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</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">b</tt> <tt class="py-op">=</tt> <tt id="link-4321" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4321', 'SubElement', 'link-112');">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="L4119"></a><tt class="py-lineno">4119</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-4322" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4322', 'SubElement', 'link-112');">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="L4120"></a><tt class="py-lineno">4120</tt>  <tt class="py-line"> </tt>
+<a name="L4121"></a><tt class="py-lineno">4121</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-4323" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4323', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-4324" class="py-name"><a title="lxml.etree.DocInfo.encoding
 lxml.tests.selftest.encoding
-lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-4327', 'encoding', 'link-1042');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</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 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="L4110"></a><tt class="py-lineno">4110</tt>  <tt class="py-line"> </tt>
-<a name="L4111"></a><tt class="py-lineno">4111</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-4328" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4328', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-4329" class="py-name"><a title="lxml.etree.DocInfo.encoding
+lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-4324', 'encoding', 'link-1039');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</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">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="L4123"></a><tt class="py-lineno">4123</tt>  <tt class="py-line"> </tt>
+<a name="L4124"></a><tt class="py-lineno">4124</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-4325" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4325', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-4326" class="py-name"><a title="lxml.etree.DocInfo.encoding
 lxml.tests.selftest.encoding
-lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-4329', 'encoding', 'link-1042');">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="L4112"></a><tt class="py-lineno">4112</tt>  <tt class="py-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="L4113"></a><tt class="py-lineno">4113</tt>  <tt class="py-line"> </tt>
-<a name="L4114"></a><tt class="py-lineno">4114</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-4330" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4330', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-4331" class="py-name"><a title="lxml.etree.DocInfo.encoding
+lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-4326', 'encoding', 'link-1039');">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="L4125"></a><tt class="py-lineno">4125</tt>  <tt class="py-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="L4126"></a><tt class="py-lineno">4126</tt>  <tt class="py-line"> </tt>
+<a name="L4127"></a><tt class="py-lineno">4127</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-4327" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4327', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-4328" class="py-name"><a title="lxml.etree.DocInfo.encoding
 lxml.tests.selftest.encoding
-lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-4331', 'encoding', 'link-1042');">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="L4115"></a><tt class="py-lineno">4115</tt>  <tt class="py-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="L4116"></a><tt class="py-lineno">4116</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_pypy_proxy_collect"></a><div id="ETreeOnlyTestCase.test_pypy_proxy_collect-def"><a name="L4117"></a><tt class="py-lineno">4117</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="L4118"></a><tt class="py-lineno">4118</tt>  <tt class="py-line">        <tt id="link-4332" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4332', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-4333" class="py-name"><a title="lxml.etree
+lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-4328', 'encoding', 'link-1039');">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="L4128"></a><tt class="py-lineno">4128</tt>  <tt class="py-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="L4129"></a><tt class="py-lineno">4129</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_pypy_proxy_collect"></a><div id="ETreeOnlyTestCase.test_pypy_proxy_collect-def"><a name="L4130"></a><tt class="py-lineno">4130</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="L4131"></a><tt class="py-lineno">4131</tt>  <tt class="py-line">        <tt id="link-4329" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4329', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-4330" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -13518,11 +13514,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4333', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4334" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4330', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4331" 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-4334', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'parent'</tt><tt class="py-op">)</tt> </tt>
-<a name="L4119"></a><tt class="py-lineno">4119</tt>  <tt class="py-line">        <tt id="link-4335" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-4331', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'parent'</tt><tt class="py-op">)</tt> </tt>
+<a name="L4132"></a><tt class="py-lineno">4132</tt>  <tt class="py-line">        <tt id="link-4332" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -13530,53 +13526,53 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4335', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4336" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4336', 'SubElement', 'link-112');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-4337" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4337', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'child'</tt><tt class="py-op">)</tt> </tt>
-<a name="L4120"></a><tt class="py-lineno">4120</tt>  <tt class="py-line"> </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 class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-4338" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4338', 'root', 'link-247');">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="L4122"></a><tt class="py-lineno">4122</tt>  <tt class="py-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-4339" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4339', 'root', 'link-247');">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-4340" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4332', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4333" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4333', 'SubElement', 'link-112');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-4334" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4334', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'child'</tt><tt class="py-op">)</tt> </tt>
+<a name="L4133"></a><tt class="py-lineno">4133</tt>  <tt class="py-line"> </tt>
+<a name="L4134"></a><tt class="py-lineno">4134</tt>  <tt class="py-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-4335" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4335', 'root', 'link-247');">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="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 id="link-4336" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4336', 'root', 'link-247');">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-4337" 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-4340', 'tag', 'link-73');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'child'</tt><tt class="py-op">)</tt> </tt>
-<a name="L4123"></a><tt class="py-lineno">4123</tt>  <tt class="py-line"> </tt>
-<a name="L4124"></a><tt class="py-lineno">4124</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="L4125"></a><tt class="py-lineno">4125</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="L4126"></a><tt class="py-lineno">4126</tt>  <tt class="py-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-4341" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4341', 'root', 'link-247');">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="L4127"></a><tt class="py-lineno">4127</tt>  <tt class="py-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-4342" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4342', 'root', 'link-247');">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-4343" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-4337', 'tag', 'link-73');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'child'</tt><tt class="py-op">)</tt> </tt>
+<a name="L4136"></a><tt class="py-lineno">4136</tt>  <tt class="py-line"> </tt>
+<a name="L4137"></a><tt class="py-lineno">4137</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="L4138"></a><tt class="py-lineno">4138</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="L4139"></a><tt class="py-lineno">4139</tt>  <tt class="py-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-4338" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4338', 'root', 'link-247');">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="L4140"></a><tt class="py-lineno">4140</tt>  <tt class="py-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-4339" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4339', 'root', 'link-247');">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-4340" 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-4343', 'tag', 'link-73');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'child'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L4128"></a><tt class="py-lineno">4128</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_element_refcycle"></a><div id="ETreeOnlyTestCase.test_element_refcycle-def"><a name="L4129"></a><tt class="py-lineno">4129</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="L4130"></a><tt class="py-lineno">4130</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="L4131"></a><tt class="py-lineno">4131</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L4132"></a><tt class="py-lineno">4132</tt>  <tt class="py-line"> </tt>
-<a name="L4133"></a><tt class="py-lineno">4133</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="L4134"></a><tt class="py-lineno">4134</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="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">'SubEl'</tt><tt class="py-op">,</tt> <tt class="py-name">el1</tt><tt class="py-op">.</tt><tt id="link-4344" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-4340', 'tag', 'link-73');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'child'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L4141"></a><tt class="py-lineno">4141</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_element_refcycle"></a><div id="ETreeOnlyTestCase.test_element_refcycle-def"><a name="L4142"></a><tt class="py-lineno">4142</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="L4143"></a><tt class="py-lineno">4143</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="L4144"></a><tt class="py-lineno">4144</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L4145"></a><tt class="py-lineno">4145</tt>  <tt class="py-line"> </tt>
+<a name="L4146"></a><tt class="py-lineno">4146</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="L4147"></a><tt class="py-lineno">4147</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="L4148"></a><tt class="py-lineno">4148</tt>  <tt class="py-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-4341" 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-4344', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L4136"></a><tt class="py-lineno">4136</tt>  <tt class="py-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-4345" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-4341', 'tag', 'link-73');">tag</a></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 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-4342" 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-4345', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L4137"></a><tt class="py-lineno">4137</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="L4138"></a><tt class="py-lineno">4138</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="L4139"></a><tt class="py-lineno">4139</tt>  <tt class="py-line"> </tt>
-<a name="L4140"></a><tt class="py-lineno">4140</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="L4141"></a><tt class="py-lineno">4141</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="L4142"></a><tt class="py-lineno">4142</tt>  <tt class="py-line">        <tt class="py-comment"># not really testing anything here, but it shouldn't crash</tt> </tt>
-<a name="L4143"></a><tt class="py-lineno">4143</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_proxy_collect_siblings"></a><div id="ETreeOnlyTestCase.test_proxy_collect_siblings-def"><a name="L4144"></a><tt class="py-lineno">4144</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="L4145"></a><tt class="py-lineno">4145</tt>  <tt class="py-line">        <tt id="link-4346" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4346', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-4347" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-4342', 'tag', 'link-73');">tag</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">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="L4151"></a><tt class="py-lineno">4151</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="L4152"></a><tt class="py-lineno">4152</tt>  <tt class="py-line"> </tt>
+<a name="L4153"></a><tt class="py-lineno">4153</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="L4154"></a><tt class="py-lineno">4154</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="L4155"></a><tt class="py-lineno">4155</tt>  <tt class="py-line">        <tt class="py-comment"># not really testing anything here, but it shouldn't crash</tt> </tt>
+<a name="L4156"></a><tt class="py-lineno">4156</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_proxy_collect_siblings"></a><div id="ETreeOnlyTestCase.test_proxy_collect_siblings-def"><a name="L4157"></a><tt class="py-lineno">4157</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="L4158"></a><tt class="py-lineno">4158</tt>  <tt class="py-line">        <tt id="link-4343" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4343', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-4344" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -13584,11 +13580,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4347', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4348" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4344', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4345" 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-4348', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'parent'</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">c1</tt> <tt class="py-op">=</tt> <tt id="link-4349" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-4345', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'parent'</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">c1</tt> <tt class="py-op">=</tt> <tt id="link-4346" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -13596,8 +13592,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4349', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4350" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4350', 'SubElement', 'link-112');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-4351" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4351', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'child1'</tt><tt class="py-op">)</tt> </tt>
-<a name="L4147"></a><tt class="py-lineno">4147</tt>  <tt class="py-line">        <tt class="py-name">c2</tt> <tt class="py-op">=</tt> <tt id="link-4352" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4346', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4347" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4347', 'SubElement', 'link-112');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-4348" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4348', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'child1'</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">c2</tt> <tt class="py-op">=</tt> <tt id="link-4349" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -13605,30 +13601,30 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4352', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4353" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4353', 'SubElement', 'link-112');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-4354" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4354', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'child2'</tt><tt class="py-op">)</tt> </tt>
-<a name="L4148"></a><tt class="py-lineno">4148</tt>  <tt class="py-line"> </tt>
-<a name="L4149"></a><tt class="py-lineno">4149</tt>  <tt class="py-line">        <tt id="link-4355" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4355', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-4356" class="py-name"><a title="lxml.etree._Element.remove
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4349', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4350" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4350', 'SubElement', 'link-112');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-4351" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4351', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'child2'</tt><tt class="py-op">)</tt> </tt>
+<a name="L4161"></a><tt class="py-lineno">4161</tt>  <tt class="py-line"> </tt>
+<a name="L4162"></a><tt class="py-lineno">4162</tt>  <tt class="py-line">        <tt id="link-4352" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4352', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-4353" class="py-name"><a title="lxml.etree._Element.remove
 lxml.html.CheckboxValues.remove
 lxml.html.Classes.remove
-lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-4356', 'remove', 'link-712');">remove</a></tt><tt class="py-op">(</tt><tt class="py-name">c1</tt><tt class="py-op">)</tt> </tt>
-<a name="L4150"></a><tt class="py-lineno">4150</tt>  <tt class="py-line">        <tt id="link-4357" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4357', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-4358" class="py-name"><a title="lxml.etree._Element.remove
+lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-4353', 'remove', 'link-709');">remove</a></tt><tt class="py-op">(</tt><tt class="py-name">c1</tt><tt class="py-op">)</tt> </tt>
+<a name="L4163"></a><tt class="py-lineno">4163</tt>  <tt class="py-line">        <tt id="link-4354" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4354', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-4355" class="py-name"><a title="lxml.etree._Element.remove
 lxml.html.CheckboxValues.remove
 lxml.html.Classes.remove
-lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-4358', 'remove', 'link-712');">remove</a></tt><tt class="py-op">(</tt><tt class="py-name">c2</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">c1</tt><tt class="py-op">.</tt><tt id="link-4359" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-4359', 'addnext', 'link-2041');">addnext</a></tt><tt class="py-op">(</tt><tt class="py-name">c2</tt><tt class="py-op">)</tt> </tt>
-<a name="L4152"></a><tt class="py-lineno">4152</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">c1</tt> </tt>
-<a name="L4153"></a><tt class="py-lineno">4153</tt>  <tt class="py-line">        <tt class="py-comment"># trigger deallocation attempt of c1</tt> </tt>
-<a name="L4154"></a><tt class="py-lineno">4154</tt>  <tt class="py-line">        <tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-4360" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-4360', 'getprevious', 'link-1326');">getprevious</a></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 class="py-comment"># make sure it wasn't deallocated</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 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-4361" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-4361', 'getprevious', 'link-1326');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-4362" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-4355', 'remove', 'link-709');">remove</a></tt><tt class="py-op">(</tt><tt class="py-name">c2</tt><tt class="py-op">)</tt> </tt>
+<a name="L4164"></a><tt class="py-lineno">4164</tt>  <tt class="py-line">        <tt class="py-name">c1</tt><tt class="py-op">.</tt><tt id="link-4356" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-4356', 'addnext', 'link-2038');">addnext</a></tt><tt class="py-op">(</tt><tt class="py-name">c2</tt><tt class="py-op">)</tt> </tt>
+<a name="L4165"></a><tt class="py-lineno">4165</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">c1</tt> </tt>
+<a name="L4166"></a><tt class="py-lineno">4166</tt>  <tt class="py-line">        <tt class="py-comment"># trigger deallocation attempt of c1</tt> </tt>
+<a name="L4167"></a><tt class="py-lineno">4167</tt>  <tt class="py-line">        <tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-4357" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-4357', 'getprevious', 'link-1323');">getprevious</a></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-comment"># make sure it wasn't deallocated</tt> </tt>
+<a name="L4169"></a><tt class="py-lineno">4169</tt>  <tt class="py-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-4358" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-4358', 'getprevious', 'link-1323');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-4359" 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-4362', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L4157"></a><tt class="py-lineno">4157</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="L4158"></a><tt class="py-lineno">4158</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="L4159"></a><tt class="py-lineno">4159</tt>  <tt class="py-line">        <tt id="link-4363" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4363', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-4364" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-4359', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L4170"></a><tt class="py-lineno">4170</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="L4171"></a><tt class="py-lineno">4171</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="L4172"></a><tt class="py-lineno">4172</tt>  <tt class="py-line">        <tt id="link-4360" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4360', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-4361" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -13636,11 +13632,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4364', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4365" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4361', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4362" 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-4365', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'parent'</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">c1</tt> <tt class="py-op">=</tt> <tt id="link-4366" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-4362', 'Element', 'link-69');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'parent'</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">c1</tt> <tt class="py-op">=</tt> <tt id="link-4363" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -13648,8 +13644,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4366', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4367" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4367', 'SubElement', 'link-112');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-4368" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4368', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'child1'</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">c2</tt> <tt class="py-op">=</tt> <tt id="link-4369" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4363', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4364" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4364', 'SubElement', 'link-112');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-4365" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4365', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'child1'</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">c2</tt> <tt class="py-op">=</tt> <tt id="link-4366" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -13657,42 +13653,42 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4369', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4370" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4370', 'SubElement', 'link-112');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-4371" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4371', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'child2'</tt><tt class="py-op">)</tt> </tt>
-<a name="L4162"></a><tt class="py-lineno">4162</tt>  <tt class="py-line"> </tt>
-<a name="L4163"></a><tt class="py-lineno">4163</tt>  <tt class="py-line">        <tt id="link-4372" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4372', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-4373" class="py-name"><a title="lxml.etree._Element.remove
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4366', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4367" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-4367', 'SubElement', 'link-112');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-4368" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4368', 'root', 'link-247');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'child2'</tt><tt class="py-op">)</tt> </tt>
+<a name="L4175"></a><tt class="py-lineno">4175</tt>  <tt class="py-line"> </tt>
+<a name="L4176"></a><tt class="py-lineno">4176</tt>  <tt class="py-line">        <tt id="link-4369" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4369', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-4370" class="py-name"><a title="lxml.etree._Element.remove
 lxml.html.CheckboxValues.remove
 lxml.html.Classes.remove
-lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-4373', 'remove', 'link-712');">remove</a></tt><tt class="py-op">(</tt><tt class="py-name">c1</tt><tt class="py-op">)</tt> </tt>
-<a name="L4164"></a><tt class="py-lineno">4164</tt>  <tt class="py-line">        <tt id="link-4374" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4374', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-4375" class="py-name"><a title="lxml.etree._Element.remove
+lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-4370', 'remove', 'link-709');">remove</a></tt><tt class="py-op">(</tt><tt class="py-name">c1</tt><tt class="py-op">)</tt> </tt>
+<a name="L4177"></a><tt class="py-lineno">4177</tt>  <tt class="py-line">        <tt id="link-4371" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4371', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-4372" class="py-name"><a title="lxml.etree._Element.remove
 lxml.html.CheckboxValues.remove
 lxml.html.Classes.remove
-lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-4375', 'remove', 'link-712');">remove</a></tt><tt class="py-op">(</tt><tt class="py-name">c2</tt><tt class="py-op">)</tt> </tt>
-<a name="L4165"></a><tt class="py-lineno">4165</tt>  <tt class="py-line">        <tt class="py-name">c1</tt><tt class="py-op">.</tt><tt id="link-4376" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-4376', 'addnext', 'link-2041');">addnext</a></tt><tt class="py-op">(</tt><tt class="py-name">c2</tt><tt class="py-op">)</tt> </tt>
-<a name="L4166"></a><tt class="py-lineno">4166</tt>  <tt class="py-line">        <tt class="py-name">c1</tt><tt class="py-op">.</tt><tt id="link-4377" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-4377', 'tail', 'link-981');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'abc'</tt> </tt>
-<a name="L4167"></a><tt class="py-lineno">4167</tt>  <tt class="py-line">        <tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-4378" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-4378', 'tail', 'link-981');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'xyz'</tt> </tt>
-<a name="L4168"></a><tt class="py-lineno">4168</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">c1</tt> </tt>
-<a name="L4169"></a><tt class="py-lineno">4169</tt>  <tt class="py-line">        <tt class="py-comment"># trigger deallocation attempt of c1</tt> </tt>
-<a name="L4170"></a><tt class="py-lineno">4170</tt>  <tt class="py-line">        <tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-4379" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-4379', 'getprevious', 'link-1326');">getprevious</a></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-comment"># make sure it wasn't deallocated</tt> </tt>
-<a name="L4172"></a><tt class="py-lineno">4172</tt>  <tt class="py-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-4380" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-4380', 'getprevious', 'link-1326');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-4381" 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-4381', 'tag', 'link-73');">tag</a></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">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-4382" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-4382', 'getprevious', 'link-1326');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-4383" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-4383', 'tail', 'link-981');">tail</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L4174"></a><tt class="py-lineno">4174</tt>  <tt class="py-line"> </tt>
-<a name="L4175"></a><tt class="py-lineno">4175</tt>  <tt class="py-line">    <tt class="py-comment"># helper methods</tt> </tt>
-<a name="L4176"></a><tt class="py-lineno">4176</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase._writeElement"></a><div id="ETreeOnlyTestCase._writeElement-def"><a name="L4177"></a><tt class="py-lineno">4177</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="L4178"></a><tt class="py-lineno">4178</tt>  <tt class="py-line">        <tt class="py-docstring">"""Write out element for comparison.</tt> </tt>
-<a name="L4179"></a><tt class="py-lineno">4179</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
-<a name="L4180"></a><tt class="py-lineno">4180</tt>  <tt class="py-line">        <tt id="link-4384" class="py-name"><a title="lxml.etree.ElementTree
+lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-4372', 'remove', 'link-709');">remove</a></tt><tt class="py-op">(</tt><tt class="py-name">c2</tt><tt class="py-op">)</tt> </tt>
+<a name="L4178"></a><tt class="py-lineno">4178</tt>  <tt class="py-line">        <tt class="py-name">c1</tt><tt class="py-op">.</tt><tt id="link-4373" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-4373', 'addnext', 'link-2038');">addnext</a></tt><tt class="py-op">(</tt><tt class="py-name">c2</tt><tt class="py-op">)</tt> </tt>
+<a name="L4179"></a><tt class="py-lineno">4179</tt>  <tt class="py-line">        <tt class="py-name">c1</tt><tt class="py-op">.</tt><tt id="link-4374" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-4374', 'tail', 'link-978');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'abc'</tt> </tt>
+<a name="L4180"></a><tt class="py-lineno">4180</tt>  <tt class="py-line">        <tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-4375" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-4375', 'tail', 'link-978');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'xyz'</tt> </tt>
+<a name="L4181"></a><tt class="py-lineno">4181</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">c1</tt> </tt>
+<a name="L4182"></a><tt class="py-lineno">4182</tt>  <tt class="py-line">        <tt class="py-comment"># trigger deallocation attempt of c1</tt> </tt>
+<a name="L4183"></a><tt class="py-lineno">4183</tt>  <tt class="py-line">        <tt class="py-name">c2</tt><tt class="py-op">.</tt><tt id="link-4376" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-4376', 'getprevious', 'link-1323');">getprevious</a></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-comment"># make sure it wasn't deallocated</tt> </tt>
+<a name="L4185"></a><tt class="py-lineno">4185</tt>  <tt class="py-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-4377" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-4377', 'getprevious', 'link-1323');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-4378" 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-4378', 'tag', 'link-73');">tag</a></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">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-4379" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-4379', 'getprevious', 'link-1323');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-4380" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-4380', 'tail', 'link-978');">tail</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L4187"></a><tt class="py-lineno">4187</tt>  <tt class="py-line"> </tt>
+<a name="L4188"></a><tt class="py-lineno">4188</tt>  <tt class="py-line">    <tt class="py-comment"># helper methods</tt> </tt>
+<a name="L4189"></a><tt class="py-lineno">4189</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase._writeElement"></a><div id="ETreeOnlyTestCase._writeElement-def"><a name="L4190"></a><tt class="py-lineno">4190</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="L4191"></a><tt class="py-lineno">4191</tt>  <tt class="py-line">        <tt class="py-docstring">"""Write out element for comparison.</tt> </tt>
+<a name="L4192"></a><tt class="py-lineno">4192</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L4193"></a><tt class="py-lineno">4193</tt>  <tt class="py-line">        <tt id="link-4381" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-4384', 'ElementTree', 'link-573');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4385" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-4381', 'ElementTree', 'link-570');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4382" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -13700,33 +13696,33 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4385', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4386" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4382', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4383" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-4386', 'ElementTree', 'link-573');">ElementTree</a></tt> </tt>
-<a name="L4181"></a><tt class="py-lineno">4181</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="L4182"></a><tt class="py-lineno">4182</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-4387" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-4383', 'ElementTree', 'link-570');">ElementTree</a></tt> </tt>
+<a name="L4194"></a><tt class="py-lineno">4194</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="L4195"></a><tt class="py-lineno">4195</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-4384" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-4387', 'ElementTree', 'link-573');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-4388" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-4388', 'element', 'link-978');">element</a></tt><tt class="py-op">=</tt><tt id="link-4389" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-4389', 'element', 'link-978');">element</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L4183"></a><tt class="py-lineno">4183</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4390" 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-4390', 'write', 'link-4390');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-4391" class="py-name"><a title="lxml.etree.DocInfo.encoding
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-4384', 'ElementTree', 'link-570');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-4385" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-4385', 'element', 'link-975');">element</a></tt><tt class="py-op">=</tt><tt id="link-4386" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-4386', 'element', 'link-975');">element</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L4196"></a><tt class="py-lineno">4196</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4387" 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-4387', 'write', 'link-4387');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-4388" class="py-name"><a title="lxml.etree.DocInfo.encoding
 lxml.tests.selftest.encoding
-lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-4391', 'encoding', 'link-1042');">encoding</a></tt><tt class="py-op">=</tt><tt id="link-4392" class="py-name"><a title="lxml.etree.DocInfo.encoding
+lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-4388', 'encoding', 'link-1039');">encoding</a></tt><tt class="py-op">=</tt><tt id="link-4389" class="py-name"><a title="lxml.etree.DocInfo.encoding
 lxml.tests.selftest.encoding
-lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-4392', 'encoding', 'link-1042');">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="L4184"></a><tt class="py-lineno">4184</tt>  <tt class="py-line">        <tt id="link-4393" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
-lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4393', 'data', 'link-1150');">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="L4185"></a><tt class="py-lineno">4185</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="L4186"></a><tt class="py-lineno">4186</tt>  <tt class="py-line">            <tt id="link-4394" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
-lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4394', 'data', 'link-1150');">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-4395" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
-lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4395', 'data', 'link-1150');">data</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L4187"></a><tt class="py-lineno">4187</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-4396" class="py-name"><a title="lxml.etree.canonicalize
-lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-4396', 'canonicalize', 'link-16');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-4397" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
-lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4397', 'data', 'link-1150');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L4188"></a><tt class="py-lineno">4188</tt>  <tt class="py-line"> </tt>
-<a name="L4189"></a><tt class="py-lineno">4189</tt>  <tt class="py-line"> </tt>
-<a name="_XIncludeTestCase"></a><div id="_XIncludeTestCase-def"><a name="L4190"></a><tt class="py-lineno">4190</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="L4191"></a><tt class="py-lineno">4191</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="L4192"></a><tt class="py-lineno">4192</tt>  <tt class="py-line">        <tt id="link-4398" 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-4398', 'filename', 'link-4398');">filename</a></tt> <tt class="py-op">=</tt> <tt id="link-4399" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-4399', 'fileInTestDir', 'link-6');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'test_broken.xml'</tt><tt class="py-op">)</tt> </tt>
-<a name="L4193"></a><tt class="py-lineno">4193</tt>  <tt class="py-line">        <tt id="link-4400" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4400', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-4401" class="py-name"><a title="lxml.etree
+lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-4389', 'encoding', 'link-1039');">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="L4197"></a><tt class="py-lineno">4197</tt>  <tt class="py-line">        <tt id="link-4390" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
+lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4390', 'data', 'link-1147');">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="L4198"></a><tt class="py-lineno">4198</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="L4199"></a><tt class="py-lineno">4199</tt>  <tt class="py-line">            <tt id="link-4391" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
+lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4391', 'data', 'link-1147');">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-4392" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
+lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4392', 'data', 'link-1147');">data</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L4200"></a><tt class="py-lineno">4200</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-4393" class="py-name"><a title="lxml.etree.canonicalize
+lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-4393', 'canonicalize', 'link-16');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-4394" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
+lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4394', 'data', 'link-1147');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L4201"></a><tt class="py-lineno">4201</tt>  <tt class="py-line"> </tt>
+<a name="L4202"></a><tt class="py-lineno">4202</tt>  <tt class="py-line"> </tt>
+<a name="_XIncludeTestCase"></a><div id="_XIncludeTestCase-def"><a name="L4203"></a><tt class="py-lineno">4203</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="L4204"></a><tt class="py-lineno">4204</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="L4205"></a><tt class="py-lineno">4205</tt>  <tt class="py-line">        <tt id="link-4395" 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-4395', 'filename', 'link-4395');">filename</a></tt> <tt class="py-op">=</tt> <tt id="link-4396" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-4396', 'fileInTestDir', 'link-6');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'test_broken.xml'</tt><tt class="py-op">)</tt> </tt>
+<a name="L4206"></a><tt class="py-lineno">4206</tt>  <tt class="py-line">        <tt id="link-4397" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4397', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-4398" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -13734,26 +13730,26 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4401', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4402" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4398', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4399" 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-4402', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-4403" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4403', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L4194"></a><tt class="py-lineno">4194</tt>  <tt class="py-line"><tt class="py-string">        &lt;doc xmlns:xi="http://www.w3.org/2001/XInclude"&gt;</tt> </tt>
-<a name="L4195"></a><tt class="py-lineno">4195</tt>  <tt class="py-line"><tt class="py-string">          &lt;xi:include href="%s" parse="text"/&gt;</tt> </tt>
-<a name="L4196"></a><tt class="py-lineno">4196</tt>  <tt class="py-line"><tt class="py-string">        &lt;/doc&gt;</tt> </tt>
-<a name="L4197"></a><tt class="py-lineno">4197</tt>  <tt class="py-line"><tt class="py-string">        '''</tt> <tt class="py-op">%</tt> <tt id="link-4404" class="py-name"><a title="lxml.tests.common_imports.path2url" class="py-name" href="#" onclick="return doclink('link-4404', 'path2url', 'link-9');">path2url</a></tt><tt class="py-op">(</tt><tt id="link-4405" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4405', 'filename', 'link-4398');">filename</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L4198"></a><tt class="py-lineno">4198</tt>  <tt class="py-line">        <tt class="py-name">old_text</tt> <tt class="py-op">=</tt> <tt id="link-4406" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4406', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-4407" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-4399', 'XML', 'link-234');">XML</a></tt><tt class="py-op">(</tt><tt id="link-4400" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4400', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L4207"></a><tt class="py-lineno">4207</tt>  <tt class="py-line"><tt class="py-string">        &lt;doc xmlns:xi="http://www.w3.org/2001/XInclude"&gt;</tt> </tt>
+<a name="L4208"></a><tt class="py-lineno">4208</tt>  <tt class="py-line"><tt class="py-string">          &lt;xi:include href="%s" parse="text"/&gt;</tt> </tt>
+<a name="L4209"></a><tt class="py-lineno">4209</tt>  <tt class="py-line"><tt class="py-string">        &lt;/doc&gt;</tt> </tt>
+<a name="L4210"></a><tt class="py-lineno">4210</tt>  <tt class="py-line"><tt class="py-string">        '''</tt> <tt class="py-op">%</tt> <tt id="link-4401" class="py-name"><a title="lxml.tests.common_imports.path2url" class="py-name" href="#" onclick="return doclink('link-4401', 'path2url', 'link-9');">path2url</a></tt><tt class="py-op">(</tt><tt id="link-4402" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4402', 'filename', 'link-4395');">filename</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L4211"></a><tt class="py-lineno">4211</tt>  <tt class="py-line">        <tt class="py-name">old_text</tt> <tt class="py-op">=</tt> <tt id="link-4403" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4403', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-4404" 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-4407', 'text', 'link-205');">text</a></tt> </tt>
-<a name="L4199"></a><tt class="py-lineno">4199</tt>  <tt class="py-line">        <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt id="link-4408" class="py-name"><a title="lxml.tests.common_imports.read_file" class="py-name" href="#" onclick="return doclink('link-4408', 'read_file', 'link-8');">read_file</a></tt><tt class="py-op">(</tt><tt id="link-4409" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4409', 'filename', 'link-4398');">filename</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L4200"></a><tt class="py-lineno">4200</tt>  <tt class="py-line">        <tt class="py-name">old_tail</tt> <tt class="py-op">=</tt> <tt id="link-4410" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4410', 'root', 'link-247');">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-4411" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-4411', 'tail', 'link-981');">tail</a></tt> </tt>
-<a name="L4201"></a><tt class="py-lineno">4201</tt>  <tt class="py-line"> </tt>
-<a name="L4202"></a><tt class="py-lineno">4202</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4412" 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-4404', 'text', 'link-205');">text</a></tt> </tt>
+<a name="L4212"></a><tt class="py-lineno">4212</tt>  <tt class="py-line">        <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt id="link-4405" class="py-name"><a title="lxml.tests.common_imports.read_file" class="py-name" href="#" onclick="return doclink('link-4405', 'read_file', 'link-8');">read_file</a></tt><tt class="py-op">(</tt><tt id="link-4406" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4406', 'filename', 'link-4395');">filename</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L4213"></a><tt class="py-lineno">4213</tt>  <tt class="py-line">        <tt class="py-name">old_tail</tt> <tt class="py-op">=</tt> <tt id="link-4407" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4407', 'root', 'link-247');">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-4408" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-4408', 'tail', 'link-978');">tail</a></tt> </tt>
+<a name="L4214"></a><tt class="py-lineno">4214</tt>  <tt class="py-line"> </tt>
+<a name="L4215"></a><tt class="py-lineno">4215</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4409" 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-4412', 'include', 'link-4412');">include</a></tt><tt class="py-op">(</tt> <tt id="link-4413" class="py-name"><a title="lxml.etree
+lxml.tests.test_etree.ElementIncludeTestCase.include" class="py-name" href="#" onclick="return doclink('link-4409', 'include', 'link-4409');">include</a></tt><tt class="py-op">(</tt> <tt id="link-4410" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -13761,18 +13757,18 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4413', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4414" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4410', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4411" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-4414', 'ElementTree', 'link-573');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-4415" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4415', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
-<a name="L4203"></a><tt class="py-lineno">4203</tt>  <tt class="py-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="L4204"></a><tt class="py-lineno">4204</tt>  <tt class="py-line">                          <tt id="link-4416" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4416', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-4417" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-4411', 'ElementTree', 'link-570');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-4412" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4412', 'root', 'link-247');">root</a></tt><tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
+<a name="L4216"></a><tt class="py-lineno">4216</tt>  <tt class="py-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="L4217"></a><tt class="py-lineno">4217</tt>  <tt class="py-line">                          <tt id="link-4413" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4413', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-4414" 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-4417', 'text', 'link-205');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L4205"></a><tt class="py-lineno">4205</tt>  <tt class="py-line"> </tt>
-<a name="_XIncludeTestCase.test_xinclude"></a><div id="_XIncludeTestCase.test_xinclude-def"><a name="L4206"></a><tt class="py-lineno">4206</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="L4207"></a><tt class="py-lineno">4207</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-4418" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-4414', 'text', 'link-205');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L4218"></a><tt class="py-lineno">4218</tt>  <tt class="py-line"> </tt>
+<a name="_XIncludeTestCase.test_xinclude"></a><div id="_XIncludeTestCase.test_xinclude-def"><a name="L4219"></a><tt class="py-lineno">4219</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="L4220"></a><tt class="py-lineno">4220</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-4415" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -13780,54 +13776,54 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4418', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4419" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4415', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4416" 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-4419', 'parse', 'link-870');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4420" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-4420', 'fileInTestDir', 'link-6');">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="L4208"></a><tt class="py-lineno">4208</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="L4209"></a><tt class="py-lineno">4209</tt>  <tt class="py-line">            <tt class="py-string">'a'</tt><tt class="py-op">,</tt> </tt>
-<a name="L4210"></a><tt class="py-lineno">4210</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4421" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-4421', 'getroot', 'link-805');">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-4422" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4416', 'parse', 'link-867');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4417" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-4417', 'fileInTestDir', 'link-6');">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="L4221"></a><tt class="py-lineno">4221</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="L4222"></a><tt class="py-lineno">4222</tt>  <tt class="py-line">            <tt class="py-string">'a'</tt><tt class="py-op">,</tt> </tt>
+<a name="L4223"></a><tt class="py-lineno">4223</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4418" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-4418', 'getroot', 'link-802');">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-4419" 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-4422', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L4211"></a><tt class="py-lineno">4211</tt>  <tt class="py-line">        <tt class="py-comment"># process xincludes</tt> </tt>
-<a name="L4212"></a><tt class="py-lineno">4212</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4423" class="py-name"><a title="lxml.ElementInclude.include
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-4419', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L4224"></a><tt class="py-lineno">4224</tt>  <tt class="py-line">        <tt class="py-comment"># process xincludes</tt> </tt>
+<a name="L4225"></a><tt class="py-lineno">4225</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4420" 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-4423', 'include', 'link-4412');">include</a></tt><tt class="py-op">(</tt> <tt class="py-name">tree</tt> <tt class="py-op">)</tt> </tt>
-<a name="L4213"></a><tt class="py-lineno">4213</tt>  <tt class="py-line">        <tt class="py-comment"># check whether we find it replaced with included data</tt> </tt>
-<a name="L4214"></a><tt class="py-lineno">4214</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L4215"></a><tt class="py-lineno">4215</tt>  <tt class="py-line">            <tt class="py-string">'a'</tt><tt class="py-op">,</tt> </tt>
-<a name="L4216"></a><tt class="py-lineno">4216</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4424" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-4424', 'getroot', 'link-805');">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-4425" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_etree.ElementIncludeTestCase.include" class="py-name" href="#" onclick="return doclink('link-4420', 'include', 'link-4409');">include</a></tt><tt class="py-op">(</tt> <tt class="py-name">tree</tt> <tt class="py-op">)</tt> </tt>
+<a name="L4226"></a><tt class="py-lineno">4226</tt>  <tt class="py-line">        <tt class="py-comment"># check whether we find it replaced with included data</tt> </tt>
+<a name="L4227"></a><tt class="py-lineno">4227</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L4228"></a><tt class="py-lineno">4228</tt>  <tt class="py-line">            <tt class="py-string">'a'</tt><tt class="py-op">,</tt> </tt>
+<a name="L4229"></a><tt class="py-lineno">4229</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4421" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-4421', 'getroot', 'link-802');">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-4422" 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-4425', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L4217"></a><tt class="py-lineno">4217</tt>  <tt class="py-line"> </tt>
-<a name="_XIncludeTestCase.test_xinclude_resolver"></a><div id="_XIncludeTestCase.test_xinclude_resolver-def"><a name="L4218"></a><tt class="py-lineno">4218</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="L4219"></a><tt class="py-lineno">4219</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="L4220"></a><tt class="py-lineno">4220</tt>  <tt class="py-line">            <tt class="py-name">include_text</tt> <tt class="py-op">=</tt> <tt id="link-4426" class="py-name"><a title="lxml.tests.common_imports.read_file" class="py-name" href="#" onclick="return doclink('link-4426', 'read_file', 'link-8');">read_file</a></tt><tt class="py-op">(</tt><tt id="link-4427" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-4427', 'fileInTestDir', 'link-6');">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="L4221"></a><tt class="py-lineno">4221</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="L4222"></a><tt class="py-lineno">4222</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="L4223"></a><tt class="py-lineno">4223</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="L4224"></a><tt class="py-lineno">4224</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="L4225"></a><tt class="py-lineno">4225</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-4428" class="py-name"><a title="lxml.etree.Resolver.resolve_filename" class="py-name" href="#" onclick="return doclink('link-4428', 'resolve_filename', 'link-1650');">resolve_filename</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L4226"></a><tt class="py-lineno">4226</tt>  <tt class="py-line">                        <tt id="link-4429" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-4429', 'fileInTestDir', 'link-6');">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="L4227"></a><tt class="py-lineno">4227</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="L4228"></a><tt class="py-lineno">4228</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="L4229"></a><tt class="py-lineno">4229</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="L4230"></a><tt class="py-lineno">4230</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L4231"></a><tt class="py-lineno">4231</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="L4232"></a><tt class="py-lineno">4232</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-4430" class="py-name"><a title="lxml.etree.Resolver.resolve_string" class="py-name" href="#" onclick="return doclink('link-4430', 'resolve_string', 'link-1586');">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="L4233"></a><tt class="py-lineno">4233</tt>  <tt class="py-line"> </tt>
-<a name="L4234"></a><tt class="py-lineno">4234</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="L4235"></a><tt class="py-lineno">4235</tt>  <tt class="py-line">        <tt id="link-4431" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4431', 'parser', 'link-861');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-4432" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-4422', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L4230"></a><tt class="py-lineno">4230</tt>  <tt class="py-line"> </tt>
+<a name="_XIncludeTestCase.test_xinclude_resolver"></a><div id="_XIncludeTestCase.test_xinclude_resolver-def"><a name="L4231"></a><tt class="py-lineno">4231</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="L4232"></a><tt class="py-lineno">4232</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="L4233"></a><tt class="py-lineno">4233</tt>  <tt class="py-line">            <tt class="py-name">include_text</tt> <tt class="py-op">=</tt> <tt id="link-4423" class="py-name"><a title="lxml.tests.common_imports.read_file" class="py-name" href="#" onclick="return doclink('link-4423', 'read_file', 'link-8');">read_file</a></tt><tt class="py-op">(</tt><tt id="link-4424" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-4424', 'fileInTestDir', 'link-6');">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="L4234"></a><tt class="py-lineno">4234</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="L4235"></a><tt class="py-lineno">4235</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="L4236"></a><tt class="py-lineno">4236</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="L4237"></a><tt class="py-lineno">4237</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="L4238"></a><tt class="py-lineno">4238</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-4425" class="py-name"><a title="lxml.etree.Resolver.resolve_filename" class="py-name" href="#" onclick="return doclink('link-4425', 'resolve_filename', 'link-1647');">resolve_filename</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L4239"></a><tt class="py-lineno">4239</tt>  <tt class="py-line">                        <tt id="link-4426" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-4426', 'fileInTestDir', 'link-6');">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="L4240"></a><tt class="py-lineno">4240</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="L4241"></a><tt class="py-lineno">4241</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="L4242"></a><tt class="py-lineno">4242</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="L4243"></a><tt class="py-lineno">4243</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L4244"></a><tt class="py-lineno">4244</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="L4245"></a><tt class="py-lineno">4245</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-4427" class="py-name"><a title="lxml.etree.Resolver.resolve_string" class="py-name" href="#" onclick="return doclink('link-4427', 'resolve_string', 'link-1583');">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="L4246"></a><tt class="py-lineno">4246</tt>  <tt class="py-line"> </tt>
+<a name="L4247"></a><tt class="py-lineno">4247</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="L4248"></a><tt class="py-lineno">4248</tt>  <tt class="py-line">        <tt id="link-4428" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4428', 'parser', 'link-858');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-4429" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -13835,15 +13831,15 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4432', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4433" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4429', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4430" 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-4433', 'XMLParser', 'link-856');">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="L4236"></a><tt class="py-lineno">4236</tt>  <tt class="py-line">        <tt id="link-4434" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4434', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4435" class="py-name"><a title="lxml.etree.iterparse.resolvers" class="py-name" href="#" onclick="return doclink('link-4435', 'resolvers', 'link-1589');">resolvers</a></tt><tt class="py-op">.</tt><tt id="link-4436" class="py-name"><a title="lxml.html.CheckboxValues.add
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-4430', 'XMLParser', 'link-853');">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="L4249"></a><tt class="py-lineno">4249</tt>  <tt class="py-line">        <tt id="link-4431" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4431', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4432" class="py-name"><a title="lxml.etree.iterparse.resolvers" class="py-name" href="#" onclick="return doclink('link-4432', 'resolvers', 'link-1586');">resolvers</a></tt><tt class="py-op">.</tt><tt id="link-4433" class="py-name"><a title="lxml.html.CheckboxValues.add
 lxml.html.Classes.add
-lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-4436', 'add', 'link-1590');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">res_instance</tt><tt class="py-op">)</tt> </tt>
-<a name="L4237"></a><tt class="py-lineno">4237</tt>  <tt class="py-line"> </tt>
-<a name="L4238"></a><tt class="py-lineno">4238</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-4437" class="py-name"><a title="lxml.etree
+lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-4433', 'add', 'link-1587');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">res_instance</tt><tt class="py-op">)</tt> </tt>
+<a name="L4250"></a><tt class="py-lineno">4250</tt>  <tt class="py-line"> </tt>
+<a name="L4251"></a><tt class="py-lineno">4251</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-4434" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -13851,71 +13847,71 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4437', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4438" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4434', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4435" 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-4438', 'parse', 'link-870');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4439" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-4439', 'fileInTestDir', 'link-6');">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="L4239"></a><tt class="py-lineno">4239</tt>  <tt class="py-line">                           <tt id="link-4440" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4440', 'parser', 'link-861');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-4441" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4441', 'parser', 'link-861');">parser</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L4240"></a><tt class="py-lineno">4240</tt>  <tt class="py-line"> </tt>
-<a name="L4241"></a><tt class="py-lineno">4241</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4442" class="py-name"><a title="lxml.ElementInclude.include
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4435', 'parse', 'link-867');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4436" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-4436', 'fileInTestDir', 'link-6');">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="L4252"></a><tt class="py-lineno">4252</tt>  <tt class="py-line">                           <tt id="link-4437" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4437', 'parser', 'link-858');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-4438" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4438', 'parser', 'link-858');">parser</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L4253"></a><tt class="py-lineno">4253</tt>  <tt class="py-line"> </tt>
+<a name="L4254"></a><tt class="py-lineno">4254</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4439" 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-4442', 'include', 'link-4412');">include</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
-<a name="L4242"></a><tt class="py-lineno">4242</tt>  <tt class="py-line"> </tt>
-<a name="L4243"></a><tt class="py-lineno">4243</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-4443" class="py-name"><a title="lxml.etree._Attrib.items
+lxml.tests.test_etree.ElementIncludeTestCase.include" class="py-name" href="#" onclick="return doclink('link-4439', 'include', 'link-4409');">include</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
+<a name="L4255"></a><tt class="py-lineno">4255</tt>  <tt class="py-line"> </tt>
+<a name="L4256"></a><tt class="py-lineno">4256</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-4440" 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-4443', 'items', 'link-304');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L4244"></a><tt class="py-lineno">4244</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="L4245"></a><tt class="py-lineno">4245</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L4246"></a><tt class="py-lineno">4246</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="L4247"></a><tt class="py-lineno">4247</tt>  <tt class="py-line">            <tt class="py-name">called</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L4248"></a><tt class="py-lineno">4248</tt>  <tt class="py-line"> </tt>
-<a name="_XIncludeTestCase.test_xinclude_resolver_recursive"></a><div id="_XIncludeTestCase.test_xinclude_resolver_recursive-def"><a name="L4249"></a><tt class="py-lineno">4249</tt> <a class="py-toggle" href="#" id="_XIncludeTestCase.test_xinclude_resolver_recursive-toggle" onclick="return toggle('_XIncludeTestCase.test_xinclude_resolver_recursive');">-</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_recursive">test_xinclude_resolver_recursive</a><tt 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_recursive-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_XIncludeTestCase.test_xinclude_resolver_recursive-expanded"><a name="L4250"></a><tt class="py-lineno">4250</tt>  <tt class="py-line">        <tt id="link-4444" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
-lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4444', 'data', 'link-1150');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">textwrap</tt><tt class="py-op">.</tt><tt class="py-name">dedent</tt><tt class="py-op">(</tt><tt class="py-string">'''</tt> </tt>
-<a name="L4251"></a><tt class="py-lineno">4251</tt>  <tt class="py-line"><tt class="py-string">        &lt;doc xmlns:xi="http://www.w3.org/2001/XInclude"&gt;</tt> </tt>
-<a name="L4252"></a><tt class="py-lineno">4252</tt>  <tt class="py-line"><tt class="py-string">        &lt;foo/&gt;</tt> </tt>
-<a name="L4253"></a><tt class="py-lineno">4253</tt>  <tt class="py-line"><tt class="py-string">        &lt;xi:include href="./test.xml" /&gt;</tt> </tt>
-<a name="L4254"></a><tt class="py-lineno">4254</tt>  <tt class="py-line"><tt class="py-string">        &lt;/doc&gt;</tt> </tt>
-<a name="L4255"></a><tt class="py-lineno">4255</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt> </tt>
-<a name="L4256"></a><tt class="py-lineno">4256</tt>  <tt class="py-line"> </tt>
-<a name="L4257"></a><tt class="py-lineno">4257</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="L4258"></a><tt class="py-lineno">4258</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="L4259"></a><tt class="py-lineno">4259</tt>  <tt class="py-line"> </tt>
-<a name="L4260"></a><tt class="py-lineno">4260</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="L4261"></a><tt class="py-lineno">4261</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">"test_xinclude.xml"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L4262"></a><tt class="py-lineno">4262</tt>  <tt class="py-line">                    <tt class="py-keyword">assert</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">called</tt><tt class="py-op">.</tt><tt id="link-4445" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-4440', 'items', 'link-304');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L4257"></a><tt class="py-lineno">4257</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="L4258"></a><tt class="py-lineno">4258</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L4259"></a><tt class="py-lineno">4259</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="L4260"></a><tt class="py-lineno">4260</tt>  <tt class="py-line">            <tt class="py-name">called</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L4261"></a><tt class="py-lineno">4261</tt>  <tt class="py-line"> </tt>
+<a name="_XIncludeTestCase.test_xinclude_resolver_recursive"></a><div id="_XIncludeTestCase.test_xinclude_resolver_recursive-def"><a name="L4262"></a><tt class="py-lineno">4262</tt> <a class="py-toggle" href="#" id="_XIncludeTestCase.test_xinclude_resolver_recursive-toggle" onclick="return toggle('_XIncludeTestCase.test_xinclude_resolver_recursive');">-</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_recursive">test_xinclude_resolver_recursive</a><tt 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_recursive-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_XIncludeTestCase.test_xinclude_resolver_recursive-expanded"><a name="L4263"></a><tt class="py-lineno">4263</tt>  <tt class="py-line">        <tt id="link-4441" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
+lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4441', 'data', 'link-1147');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">textwrap</tt><tt class="py-op">.</tt><tt class="py-name">dedent</tt><tt class="py-op">(</tt><tt class="py-string">'''</tt> </tt>
+<a name="L4264"></a><tt class="py-lineno">4264</tt>  <tt class="py-line"><tt class="py-string">        &lt;doc xmlns:xi="http://www.w3.org/2001/XInclude"&gt;</tt> </tt>
+<a name="L4265"></a><tt class="py-lineno">4265</tt>  <tt class="py-line"><tt class="py-string">        &lt;foo/&gt;</tt> </tt>
+<a name="L4266"></a><tt class="py-lineno">4266</tt>  <tt class="py-line"><tt class="py-string">        &lt;xi:include href="./test.xml" /&gt;</tt> </tt>
+<a name="L4267"></a><tt class="py-lineno">4267</tt>  <tt class="py-line"><tt class="py-string">        &lt;/doc&gt;</tt> </tt>
+<a name="L4268"></a><tt class="py-lineno">4268</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt> </tt>
+<a name="L4269"></a><tt class="py-lineno">4269</tt>  <tt class="py-line"> </tt>
+<a name="L4270"></a><tt class="py-lineno">4270</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="L4271"></a><tt class="py-lineno">4271</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="L4272"></a><tt class="py-lineno">4272</tt>  <tt class="py-line"> </tt>
+<a name="L4273"></a><tt class="py-lineno">4273</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="L4274"></a><tt class="py-lineno">4274</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">"test_xinclude.xml"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L4275"></a><tt class="py-lineno">4275</tt>  <tt class="py-line">                    <tt class="py-keyword">assert</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">called</tt><tt class="py-op">.</tt><tt id="link-4442" 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-4445', 'get', 'link-270');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"input"</tt><tt class="py-op">)</tt> </tt>
-<a name="L4263"></a><tt class="py-lineno">4263</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="L4264"></a><tt class="py-lineno">4264</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="L4265"></a><tt class="py-lineno">4265</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">'/test5.xml'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L4266"></a><tt class="py-lineno">4266</tt>  <tt class="py-line">                    <tt class="py-keyword">assert</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">called</tt><tt class="py-op">.</tt><tt id="link-4446" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-4442', 'get', 'link-270');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"input"</tt><tt class="py-op">)</tt> </tt>
+<a name="L4276"></a><tt class="py-lineno">4276</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="L4277"></a><tt class="py-lineno">4277</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="L4278"></a><tt class="py-lineno">4278</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">'/test5.xml'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L4279"></a><tt class="py-lineno">4279</tt>  <tt class="py-line">                    <tt class="py-keyword">assert</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">called</tt><tt class="py-op">.</tt><tt id="link-4443" 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-4446', 'get', 'link-270');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"DONE"</tt><tt class="py-op">)</tt> </tt>
-<a name="L4267"></a><tt class="py-lineno">4267</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">"DONE"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L4268"></a><tt class="py-lineno">4268</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-4447" class="py-name"><a title="lxml.etree.Resolver.resolve_string" class="py-name" href="#" onclick="return doclink('link-4447', 'resolve_string', 'link-1586');">resolve_string</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;DONE/&gt;'</tt><tt class="py-op">,</tt> <tt class="py-name">context</tt><tt class="py-op">)</tt> </tt>
-<a name="L4269"></a><tt class="py-lineno">4269</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L4270"></a><tt class="py-lineno">4270</tt>  <tt class="py-line">                    <tt class="py-name">_</tt><tt class="py-op">,</tt> <tt id="link-4448" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4448', 'filename', 'link-4398');">filename</a></tt> <tt class="py-op">=</tt> <tt class="py-name">url</tt><tt class="py-op">.</tt><tt class="py-name">rsplit</tt><tt class="py-op">(</tt><tt class="py-string">'/'</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-<a name="L4271"></a><tt class="py-lineno">4271</tt>  <tt class="py-line">                    <tt class="py-keyword">assert</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">called</tt><tt class="py-op">.</tt><tt id="link-4449" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-4443', 'get', 'link-270');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"DONE"</tt><tt class="py-op">)</tt> </tt>
+<a name="L4280"></a><tt class="py-lineno">4280</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">"DONE"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L4281"></a><tt class="py-lineno">4281</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-4444" class="py-name"><a title="lxml.etree.Resolver.resolve_string" class="py-name" href="#" onclick="return doclink('link-4444', 'resolve_string', 'link-1583');">resolve_string</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;DONE/&gt;'</tt><tt class="py-op">,</tt> <tt class="py-name">context</tt><tt class="py-op">)</tt> </tt>
+<a name="L4282"></a><tt class="py-lineno">4282</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L4283"></a><tt class="py-lineno">4283</tt>  <tt class="py-line">                    <tt class="py-name">_</tt><tt class="py-op">,</tt> <tt id="link-4445" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4445', 'filename', 'link-4395');">filename</a></tt> <tt class="py-op">=</tt> <tt class="py-name">url</tt><tt class="py-op">.</tt><tt class="py-name">rsplit</tt><tt class="py-op">(</tt><tt class="py-string">'/'</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L4284"></a><tt class="py-lineno">4284</tt>  <tt class="py-line">                    <tt class="py-keyword">assert</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">called</tt><tt class="py-op">.</tt><tt id="link-4446" 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-4449', 'get', 'link-270');">get</a></tt><tt class="py-op">(</tt><tt id="link-4450" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4450', 'filename', 'link-4398');">filename</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L4272"></a><tt class="py-lineno">4272</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 id="link-4451" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4451', 'filename', 'link-4398');">filename</a></tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L4273"></a><tt class="py-lineno">4273</tt>  <tt class="py-line">                    <tt class="py-name">next_data</tt> <tt class="py-op">=</tt> <tt id="link-4452" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
-lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4452', 'data', 'link-1150');">data</a></tt><tt class="py-op">.</tt><tt id="link-4453" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-4453', 'replace', 'link-644');">replace</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L4274"></a><tt class="py-lineno">4274</tt>  <tt class="py-line">                        <tt class="py-string">'test.xml'</tt><tt class="py-op">,</tt> <tt class="py-string">'test%d.xml'</tt> <tt class="py-op">%</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><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-op">)</tt> </tt>
-<a name="L4275"></a><tt class="py-lineno">4275</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-4454" class="py-name"><a title="lxml.etree.Resolver.resolve_string" class="py-name" href="#" onclick="return doclink('link-4454', 'resolve_string', 'link-1586');">resolve_string</a></tt><tt class="py-op">(</tt><tt class="py-name">next_data</tt><tt class="py-op">,</tt> <tt class="py-name">context</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L4276"></a><tt class="py-lineno">4276</tt>  <tt class="py-line"> </tt>
-<a name="L4277"></a><tt class="py-lineno">4277</tt>  <tt class="py-line">        <tt class="py-name">res_instance</tt> <tt class="py-op">=</tt> <tt id="link-4455" 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-4455', 'Resolver', 'link-4455');">Resolver</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L4278"></a><tt class="py-lineno">4278</tt>  <tt class="py-line">        <tt id="link-4456" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4456', 'parser', 'link-861');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-4457" class="py-name"><a title="lxml.etree
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-4446', 'get', 'link-270');">get</a></tt><tt class="py-op">(</tt><tt id="link-4447" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4447', 'filename', 'link-4395');">filename</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L4285"></a><tt class="py-lineno">4285</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 id="link-4448" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4448', 'filename', 'link-4395');">filename</a></tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L4286"></a><tt class="py-lineno">4286</tt>  <tt class="py-line">                    <tt class="py-name">next_data</tt> <tt class="py-op">=</tt> <tt id="link-4449" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
+lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4449', 'data', 'link-1147');">data</a></tt><tt class="py-op">.</tt><tt id="link-4450" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-4450', 'replace', 'link-641');">replace</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L4287"></a><tt class="py-lineno">4287</tt>  <tt class="py-line">                        <tt class="py-string">'test.xml'</tt><tt class="py-op">,</tt> <tt class="py-string">'test%d.xml'</tt> <tt class="py-op">%</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><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-op">)</tt> </tt>
+<a name="L4288"></a><tt class="py-lineno">4288</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-4451" class="py-name"><a title="lxml.etree.Resolver.resolve_string" class="py-name" href="#" onclick="return doclink('link-4451', 'resolve_string', 'link-1583');">resolve_string</a></tt><tt class="py-op">(</tt><tt class="py-name">next_data</tt><tt class="py-op">,</tt> <tt class="py-name">context</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L4289"></a><tt class="py-lineno">4289</tt>  <tt class="py-line"> </tt>
+<a name="L4290"></a><tt class="py-lineno">4290</tt>  <tt class="py-line">        <tt class="py-name">res_instance</tt> <tt class="py-op">=</tt> <tt id="link-4452" 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-4452', 'Resolver', 'link-4452');">Resolver</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L4291"></a><tt class="py-lineno">4291</tt>  <tt class="py-line">        <tt id="link-4453" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4453', 'parser', 'link-858');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-4454" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -13923,15 +13919,15 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4457', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4458" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4454', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4455" 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-4458', 'XMLParser', 'link-856');">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="L4279"></a><tt class="py-lineno">4279</tt>  <tt class="py-line">        <tt id="link-4459" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4459', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4460" class="py-name"><a title="lxml.etree.iterparse.resolvers" class="py-name" href="#" onclick="return doclink('link-4460', 'resolvers', 'link-1589');">resolvers</a></tt><tt class="py-op">.</tt><tt id="link-4461" class="py-name"><a title="lxml.html.CheckboxValues.add
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-4455', 'XMLParser', 'link-853');">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="L4292"></a><tt class="py-lineno">4292</tt>  <tt class="py-line">        <tt id="link-4456" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4456', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4457" class="py-name"><a title="lxml.etree.iterparse.resolvers" class="py-name" href="#" onclick="return doclink('link-4457', 'resolvers', 'link-1586');">resolvers</a></tt><tt class="py-op">.</tt><tt id="link-4458" class="py-name"><a title="lxml.html.CheckboxValues.add
 lxml.html.Classes.add
-lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-4461', 'add', 'link-1590');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">res_instance</tt><tt class="py-op">)</tt> </tt>
-<a name="L4280"></a><tt class="py-lineno">4280</tt>  <tt class="py-line"> </tt>
-<a name="L4281"></a><tt class="py-lineno">4281</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-4462" class="py-name"><a title="lxml.etree
+lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-4458', 'add', 'link-1587');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">res_instance</tt><tt class="py-op">)</tt> </tt>
+<a name="L4293"></a><tt class="py-lineno">4293</tt>  <tt class="py-line"> </tt>
+<a name="L4294"></a><tt class="py-lineno">4294</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-4459" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -13939,101 +13935,101 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4462', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4463" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4459', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4460" 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-4463', 'parse', 'link-870');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4464" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-4464', 'fileInTestDir', 'link-6');">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="L4282"></a><tt class="py-lineno">4282</tt>  <tt class="py-line">                           <tt id="link-4465" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4465', 'parser', 'link-861');">parser</a></tt><tt class="py-op">=</tt><tt id="link-4466" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4466', 'parser', 'link-861');">parser</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L4283"></a><tt class="py-lineno">4283</tt>  <tt class="py-line"> </tt>
-<a name="L4284"></a><tt class="py-lineno">4284</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4467" class="py-name"><a title="lxml.ElementInclude.include
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4460', 'parse', 'link-867');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4461" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-4461', 'fileInTestDir', 'link-6');">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="L4295"></a><tt class="py-lineno">4295</tt>  <tt class="py-line">                           <tt id="link-4462" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4462', 'parser', 'link-858');">parser</a></tt><tt class="py-op">=</tt><tt id="link-4463" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4463', 'parser', 'link-858');">parser</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L4296"></a><tt class="py-lineno">4296</tt>  <tt class="py-line"> </tt>
+<a name="L4297"></a><tt class="py-lineno">4297</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4464" 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-4467', 'include', 'link-4412');">include</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
-<a name="L4285"></a><tt class="py-lineno">4285</tt>  <tt class="py-line"> </tt>
-<a name="L4286"></a><tt class="py-lineno">4286</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-4468" 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-4468', 'items', 'link-304');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L4287"></a><tt class="py-lineno">4287</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="L4288"></a><tt class="py-lineno">4288</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L4289"></a><tt class="py-lineno">4289</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">"DONE"</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 class="py-string">"test.xml"</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="L4290"></a><tt class="py-lineno">4290</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">"test2.xml"</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">"test3.xml"</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">"test4.xml"</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="L4291"></a><tt class="py-lineno">4291</tt>  <tt class="py-line">            <tt class="py-name">called</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L4292"></a><tt class="py-lineno">4292</tt>  <tt class="py-line"> </tt>
-<a name="L4293"></a><tt class="py-lineno">4293</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXIncludeTestCase"></a><div id="ETreeXIncludeTestCase-def"><a name="L4294"></a><tt class="py-lineno">4294</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="L4295"></a><tt class="py-lineno">4295</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="L4296"></a><tt class="py-lineno">4296</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4469" class="py-name" targets="Method lxml.etree._ElementTree.xinclude()=lxml.etree._ElementTree-class.html#xinclude,Function lxml.tests.selftest.xinclude()=lxml.tests.selftest-module.html#xinclude"><a title="lxml.etree._ElementTree.xinclude
-lxml.tests.selftest.xinclude" class="py-name" href="#" onclick="return doclink('link-4469', 'xinclude', 'link-4469');">xinclude</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L4297"></a><tt class="py-lineno">4297</tt>  <tt class="py-line"> </tt>
+lxml.tests.test_etree.ElementIncludeTestCase.include" class="py-name" href="#" onclick="return doclink('link-4464', 'include', 'link-4409');">include</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
 <a name="L4298"></a><tt class="py-lineno">4298</tt>  <tt class="py-line"> </tt>
-<a name="ElementIncludeTestCase"></a><div id="ElementIncludeTestCase-def"><a name="L4299"></a><tt class="py-lineno">4299</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="L4300"></a><tt class="py-lineno">4300</tt>  <tt class="py-line">    <tt class="py-keyword">from</tt> <tt id="link-4470" class="py-name"><a title="lxml" class="py-name" href="#" onclick="return doclink('link-4470', 'lxml', 'link-58');">lxml</a></tt> <tt class="py-keyword">import</tt> <tt id="link-4471" class="py-name" targets="Module lxml.ElementInclude=lxml.ElementInclude-module.html"><a title="lxml.ElementInclude" class="py-name" href="#" onclick="return doclink('link-4471', 'ElementInclude', 'link-4471');">ElementInclude</a></tt> </tt>
-<a name="L4301"></a><tt class="py-lineno">4301</tt>  <tt class="py-line"> </tt>
-<a name="ElementIncludeTestCase.include"></a><div id="ElementIncludeTestCase.include-def"><a name="L4302"></a><tt class="py-lineno">4302</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-param">loader</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">max_depth</tt><tt class="py-op">=</tt><tt class="py-name">None</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="L4303"></a><tt class="py-lineno">4303</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4472" class="py-name"><a title="lxml.ElementInclude" class="py-name" href="#" onclick="return doclink('link-4472', 'ElementInclude', 'link-4471');">ElementInclude</a></tt><tt class="py-op">.</tt><tt id="link-4473" class="py-name"><a title="lxml.ElementInclude.include
+<a name="L4299"></a><tt class="py-lineno">4299</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-4465" 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-4465', 'items', 'link-304');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L4300"></a><tt class="py-lineno">4300</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="L4301"></a><tt class="py-lineno">4301</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L4302"></a><tt class="py-lineno">4302</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">"DONE"</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 class="py-string">"test.xml"</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="L4303"></a><tt class="py-lineno">4303</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">"test2.xml"</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">"test3.xml"</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">"test4.xml"</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="L4304"></a><tt class="py-lineno">4304</tt>  <tt class="py-line">            <tt class="py-name">called</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L4305"></a><tt class="py-lineno">4305</tt>  <tt class="py-line"> </tt>
+<a name="L4306"></a><tt class="py-lineno">4306</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXIncludeTestCase"></a><div id="ETreeXIncludeTestCase-def"><a name="L4307"></a><tt class="py-lineno">4307</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="L4308"></a><tt class="py-lineno">4308</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="L4309"></a><tt class="py-lineno">4309</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4466" class="py-name" targets="Method lxml.etree._ElementTree.xinclude()=lxml.etree._ElementTree-class.html#xinclude,Function lxml.tests.selftest.xinclude()=lxml.tests.selftest-module.html#xinclude"><a title="lxml.etree._ElementTree.xinclude
+lxml.tests.selftest.xinclude" class="py-name" href="#" onclick="return doclink('link-4466', 'xinclude', 'link-4466');">xinclude</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L4310"></a><tt class="py-lineno">4310</tt>  <tt class="py-line"> </tt>
+<a name="L4311"></a><tt class="py-lineno">4311</tt>  <tt class="py-line"> </tt>
+<a name="ElementIncludeTestCase"></a><div id="ElementIncludeTestCase-def"><a name="L4312"></a><tt class="py-lineno">4312</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="L4313"></a><tt class="py-lineno">4313</tt>  <tt class="py-line">    <tt class="py-keyword">from</tt> <tt id="link-4467" class="py-name"><a title="lxml" class="py-name" href="#" onclick="return doclink('link-4467', 'lxml', 'link-58');">lxml</a></tt> <tt class="py-keyword">import</tt> <tt id="link-4468" class="py-name" targets="Module lxml.ElementInclude=lxml.ElementInclude-module.html"><a title="lxml.ElementInclude" class="py-name" href="#" onclick="return doclink('link-4468', 'ElementInclude', 'link-4468');">ElementInclude</a></tt> </tt>
+<a name="L4314"></a><tt class="py-lineno">4314</tt>  <tt class="py-line"> </tt>
+<a name="ElementIncludeTestCase.include"></a><div id="ElementIncludeTestCase.include-def"><a name="L4315"></a><tt class="py-lineno">4315</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-param">loader</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">max_depth</tt><tt class="py-op">=</tt><tt class="py-name">None</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="L4316"></a><tt class="py-lineno">4316</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4469" class="py-name"><a title="lxml.ElementInclude" class="py-name" href="#" onclick="return doclink('link-4469', 'ElementInclude', 'link-4468');">ElementInclude</a></tt><tt class="py-op">.</tt><tt id="link-4470" 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-4473', 'include', 'link-4412');">include</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4474" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-4474', 'getroot', 'link-805');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">loader</tt><tt class="py-op">=</tt><tt class="py-name">loader</tt><tt class="py-op">,</tt> <tt class="py-name">max_depth</tt><tt class="py-op">=</tt><tt class="py-name">max_depth</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L4304"></a><tt class="py-lineno">4304</tt>  <tt class="py-line"> </tt>
-<a name="L4305"></a><tt class="py-lineno">4305</tt>  <tt class="py-line">    <tt id="link-4475" class="py-name" targets="Variable lxml.ElementInclude.XINCLUDE=lxml.ElementInclude-module.html#XINCLUDE,Variable lxml.etree.ErrorDomains.XINCLUDE=lxml.etree.ErrorDomains-class.html#XINCLUDE,Variable lxml.tests.selftest.XINCLUDE=lxml.tests.selftest-module.html#XINCLUDE,Variable lxml.tests.test_etree.ElementIncludeTestCase.XINCLUDE=lxml.tests.test_etree.ElementIncludeTestCase-class.html#XINCLUDE"><a title="lxml.ElementInclude.XINCLUDE
+lxml.tests.test_etree.ElementIncludeTestCase.include" class="py-name" href="#" onclick="return doclink('link-4470', 'include', 'link-4409');">include</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4471" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-4471', 'getroot', 'link-802');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">loader</tt><tt class="py-op">=</tt><tt class="py-name">loader</tt><tt class="py-op">,</tt> <tt class="py-name">max_depth</tt><tt class="py-op">=</tt><tt class="py-name">max_depth</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L4317"></a><tt class="py-lineno">4317</tt>  <tt class="py-line"> </tt>
+<a name="L4318"></a><tt class="py-lineno">4318</tt>  <tt class="py-line">    <tt id="link-4472" class="py-name" targets="Variable lxml.ElementInclude.XINCLUDE=lxml.ElementInclude-module.html#XINCLUDE,Variable lxml.etree.ErrorDomains.XINCLUDE=lxml.etree.ErrorDomains-class.html#XINCLUDE,Variable lxml.tests.selftest.XINCLUDE=lxml.tests.selftest-module.html#XINCLUDE,Variable lxml.tests.test_etree.ElementIncludeTestCase.XINCLUDE=lxml.tests.test_etree.ElementIncludeTestCase-class.html#XINCLUDE"><a title="lxml.ElementInclude.XINCLUDE
 lxml.etree.ErrorDomains.XINCLUDE
 lxml.tests.selftest.XINCLUDE
-lxml.tests.test_etree.ElementIncludeTestCase.XINCLUDE" class="py-name" href="#" onclick="return doclink('link-4475', 'XINCLUDE', 'link-4475');">XINCLUDE</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L4306"></a><tt class="py-lineno">4306</tt>  <tt class="py-line"> </tt>
-<a name="L4307"></a><tt class="py-lineno">4307</tt>  <tt class="py-line">    <tt id="link-4476" class="py-name"><a title="lxml.ElementInclude.XINCLUDE
+lxml.tests.test_etree.ElementIncludeTestCase.XINCLUDE" class="py-name" href="#" onclick="return doclink('link-4472', 'XINCLUDE', 'link-4472');">XINCLUDE</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L4319"></a><tt class="py-lineno">4319</tt>  <tt class="py-line"> </tt>
+<a name="L4320"></a><tt class="py-lineno">4320</tt>  <tt class="py-line">    <tt id="link-4473" class="py-name"><a title="lxml.ElementInclude.XINCLUDE
 lxml.etree.ErrorDomains.XINCLUDE
 lxml.tests.selftest.XINCLUDE
-lxml.tests.test_etree.ElementIncludeTestCase.XINCLUDE" class="py-name" href="#" onclick="return doclink('link-4476', 'XINCLUDE', 'link-4475');">XINCLUDE</a></tt><tt class="py-op">[</tt><tt class="py-string">"Recursive1.xml"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">"""\</tt> </tt>
-<a name="L4308"></a><tt class="py-lineno">4308</tt>  <tt class="py-line"><tt class="py-string">    &lt;?xml version='1.0'?&gt;</tt> </tt>
-<a name="L4309"></a><tt class="py-lineno">4309</tt>  <tt class="py-line"><tt class="py-string">    &lt;document xmlns:xi="http://www.w3.org/2001/XInclude"&gt;</tt> </tt>
-<a name="L4310"></a><tt class="py-lineno">4310</tt>  <tt class="py-line"><tt class="py-string">      &lt;p&gt;The following is the source code of Recursive2.xml:&lt;/p&gt;</tt> </tt>
-<a name="L4311"></a><tt class="py-lineno">4311</tt>  <tt class="py-line"><tt class="py-string">      &lt;xi:include href="Recursive2.xml"/&gt;</tt> </tt>
-<a name="L4312"></a><tt class="py-lineno">4312</tt>  <tt class="py-line"><tt class="py-string">    &lt;/document&gt;</tt> </tt>
-<a name="L4313"></a><tt class="py-lineno">4313</tt>  <tt class="py-line"><tt class="py-string">    """</tt> </tt>
-<a name="L4314"></a><tt class="py-lineno">4314</tt>  <tt class="py-line"> </tt>
-<a name="L4315"></a><tt class="py-lineno">4315</tt>  <tt class="py-line">    <tt id="link-4477" class="py-name"><a title="lxml.ElementInclude.XINCLUDE
+lxml.tests.test_etree.ElementIncludeTestCase.XINCLUDE" class="py-name" href="#" onclick="return doclink('link-4473', 'XINCLUDE', 'link-4472');">XINCLUDE</a></tt><tt class="py-op">[</tt><tt class="py-string">"Recursive1.xml"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">"""\</tt> </tt>
+<a name="L4321"></a><tt class="py-lineno">4321</tt>  <tt class="py-line"><tt class="py-string">    &lt;?xml version='1.0'?&gt;</tt> </tt>
+<a name="L4322"></a><tt class="py-lineno">4322</tt>  <tt class="py-line"><tt class="py-string">    &lt;document xmlns:xi="http://www.w3.org/2001/XInclude"&gt;</tt> </tt>
+<a name="L4323"></a><tt class="py-lineno">4323</tt>  <tt class="py-line"><tt class="py-string">      &lt;p&gt;The following is the source code of Recursive2.xml:&lt;/p&gt;</tt> </tt>
+<a name="L4324"></a><tt class="py-lineno">4324</tt>  <tt class="py-line"><tt class="py-string">      &lt;xi:include href="Recursive2.xml"/&gt;</tt> </tt>
+<a name="L4325"></a><tt class="py-lineno">4325</tt>  <tt class="py-line"><tt class="py-string">    &lt;/document&gt;</tt> </tt>
+<a name="L4326"></a><tt class="py-lineno">4326</tt>  <tt class="py-line"><tt class="py-string">    """</tt> </tt>
+<a name="L4327"></a><tt class="py-lineno">4327</tt>  <tt class="py-line"> </tt>
+<a name="L4328"></a><tt class="py-lineno">4328</tt>  <tt class="py-line">    <tt id="link-4474" class="py-name"><a title="lxml.ElementInclude.XINCLUDE
 lxml.etree.ErrorDomains.XINCLUDE
 lxml.tests.selftest.XINCLUDE
-lxml.tests.test_etree.ElementIncludeTestCase.XINCLUDE" class="py-name" href="#" onclick="return doclink('link-4477', 'XINCLUDE', 'link-4475');">XINCLUDE</a></tt><tt class="py-op">[</tt><tt class="py-string">"Recursive2.xml"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">"""\</tt> </tt>
-<a name="L4316"></a><tt class="py-lineno">4316</tt>  <tt class="py-line"><tt class="py-string">    &lt;?xml version='1.0'?&gt;</tt> </tt>
-<a name="L4317"></a><tt class="py-lineno">4317</tt>  <tt class="py-line"><tt class="py-string">    &lt;document xmlns:xi="http://www.w3.org/2001/XInclude"&gt;</tt> </tt>
-<a name="L4318"></a><tt class="py-lineno">4318</tt>  <tt class="py-line"><tt class="py-string">      &lt;p&gt;The following is the source code of Recursive3.xml:&lt;/p&gt;</tt> </tt>
-<a name="L4319"></a><tt class="py-lineno">4319</tt>  <tt class="py-line"><tt class="py-string">      &lt;xi:include href="Recursive3.xml"/&gt;</tt> </tt>
-<a name="L4320"></a><tt class="py-lineno">4320</tt>  <tt class="py-line"><tt class="py-string">    &lt;/document&gt;</tt> </tt>
-<a name="L4321"></a><tt class="py-lineno">4321</tt>  <tt class="py-line"><tt class="py-string">    """</tt> </tt>
-<a name="L4322"></a><tt class="py-lineno">4322</tt>  <tt class="py-line"> </tt>
-<a name="L4323"></a><tt class="py-lineno">4323</tt>  <tt class="py-line">    <tt id="link-4478" class="py-name"><a title="lxml.ElementInclude.XINCLUDE
+lxml.tests.test_etree.ElementIncludeTestCase.XINCLUDE" class="py-name" href="#" onclick="return doclink('link-4474', 'XINCLUDE', 'link-4472');">XINCLUDE</a></tt><tt class="py-op">[</tt><tt class="py-string">"Recursive2.xml"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">"""\</tt> </tt>
+<a name="L4329"></a><tt class="py-lineno">4329</tt>  <tt class="py-line"><tt class="py-string">    &lt;?xml version='1.0'?&gt;</tt> </tt>
+<a name="L4330"></a><tt class="py-lineno">4330</tt>  <tt class="py-line"><tt class="py-string">    &lt;document xmlns:xi="http://www.w3.org/2001/XInclude"&gt;</tt> </tt>
+<a name="L4331"></a><tt class="py-lineno">4331</tt>  <tt class="py-line"><tt class="py-string">      &lt;p&gt;The following is the source code of Recursive3.xml:&lt;/p&gt;</tt> </tt>
+<a name="L4332"></a><tt class="py-lineno">4332</tt>  <tt class="py-line"><tt class="py-string">      &lt;xi:include href="Recursive3.xml"/&gt;</tt> </tt>
+<a name="L4333"></a><tt class="py-lineno">4333</tt>  <tt class="py-line"><tt class="py-string">    &lt;/document&gt;</tt> </tt>
+<a name="L4334"></a><tt class="py-lineno">4334</tt>  <tt class="py-line"><tt class="py-string">    """</tt> </tt>
+<a name="L4335"></a><tt class="py-lineno">4335</tt>  <tt class="py-line"> </tt>
+<a name="L4336"></a><tt class="py-lineno">4336</tt>  <tt class="py-line">    <tt id="link-4475" class="py-name"><a title="lxml.ElementInclude.XINCLUDE
 lxml.etree.ErrorDomains.XINCLUDE
 lxml.tests.selftest.XINCLUDE
-lxml.tests.test_etree.ElementIncludeTestCase.XINCLUDE" class="py-name" href="#" onclick="return doclink('link-4478', 'XINCLUDE', 'link-4475');">XINCLUDE</a></tt><tt class="py-op">[</tt><tt class="py-string">"Recursive3.xml"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">"""\</tt> </tt>
-<a name="L4324"></a><tt class="py-lineno">4324</tt>  <tt class="py-line"><tt class="py-string">    &lt;?xml version='1.0'?&gt;</tt> </tt>
-<a name="L4325"></a><tt class="py-lineno">4325</tt>  <tt class="py-line"><tt class="py-string">    &lt;document xmlns:xi="http://www.w3.org/2001/XInclude"&gt;</tt> </tt>
-<a name="L4326"></a><tt class="py-lineno">4326</tt>  <tt class="py-line"><tt class="py-string">      &lt;p&gt;The following is the source code of Recursive1.xml:&lt;/p&gt;</tt> </tt>
-<a name="L4327"></a><tt class="py-lineno">4327</tt>  <tt class="py-line"><tt class="py-string">      &lt;xi:include href="Recursive1.xml"/&gt;</tt> </tt>
-<a name="L4328"></a><tt class="py-lineno">4328</tt>  <tt class="py-line"><tt class="py-string">    &lt;/document&gt;</tt> </tt>
-<a name="L4329"></a><tt class="py-lineno">4329</tt>  <tt class="py-line"><tt class="py-string">    """</tt> </tt>
-<a name="L4330"></a><tt class="py-lineno">4330</tt>  <tt class="py-line"> </tt>
-<a name="ElementIncludeTestCase.xinclude_loader"></a><div id="ElementIncludeTestCase.xinclude_loader-def"><a name="L4331"></a><tt class="py-lineno">4331</tt> <a class="py-toggle" href="#" id="ElementIncludeTestCase.xinclude_loader-toggle" onclick="return toggle('ElementIncludeTestCase.xinclude_loader');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ElementIncludeTestCase-class.html#xinclude_loader">xinclude_loader</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">href</tt><tt class="py-op">,</tt> <tt class="py-param">parse</tt><tt class="py-op">=</tt><tt class="py-string">"xml"</tt><tt class="py-op">,</tt> <tt class="py-param">encoding</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ElementIncludeTestCase.xinclude_loader-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ElementIncludeTestCase.xinclude_loader-expanded"><a name="L4332"></a><tt class="py-lineno">4332</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L4333"></a><tt class="py-lineno">4333</tt>  <tt class="py-line">            <tt id="link-4479" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
-lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4479', 'data', 'link-1150');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">textwrap</tt><tt class="py-op">.</tt><tt class="py-name">dedent</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4480" class="py-name"><a title="lxml.ElementInclude.XINCLUDE
+lxml.tests.test_etree.ElementIncludeTestCase.XINCLUDE" class="py-name" href="#" onclick="return doclink('link-4475', 'XINCLUDE', 'link-4472');">XINCLUDE</a></tt><tt class="py-op">[</tt><tt class="py-string">"Recursive3.xml"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">"""\</tt> </tt>
+<a name="L4337"></a><tt class="py-lineno">4337</tt>  <tt class="py-line"><tt class="py-string">    &lt;?xml version='1.0'?&gt;</tt> </tt>
+<a name="L4338"></a><tt class="py-lineno">4338</tt>  <tt class="py-line"><tt class="py-string">    &lt;document xmlns:xi="http://www.w3.org/2001/XInclude"&gt;</tt> </tt>
+<a name="L4339"></a><tt class="py-lineno">4339</tt>  <tt class="py-line"><tt class="py-string">      &lt;p&gt;The following is the source code of Recursive1.xml:&lt;/p&gt;</tt> </tt>
+<a name="L4340"></a><tt class="py-lineno">4340</tt>  <tt class="py-line"><tt class="py-string">      &lt;xi:include href="Recursive1.xml"/&gt;</tt> </tt>
+<a name="L4341"></a><tt class="py-lineno">4341</tt>  <tt class="py-line"><tt class="py-string">    &lt;/document&gt;</tt> </tt>
+<a name="L4342"></a><tt class="py-lineno">4342</tt>  <tt class="py-line"><tt class="py-string">    """</tt> </tt>
+<a name="L4343"></a><tt class="py-lineno">4343</tt>  <tt class="py-line"> </tt>
+<a name="ElementIncludeTestCase.xinclude_loader"></a><div id="ElementIncludeTestCase.xinclude_loader-def"><a name="L4344"></a><tt class="py-lineno">4344</tt> <a class="py-toggle" href="#" id="ElementIncludeTestCase.xinclude_loader-toggle" onclick="return toggle('ElementIncludeTestCase.xinclude_loader');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ElementIncludeTestCase-class.html#xinclude_loader">xinclude_loader</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">href</tt><tt class="py-op">,</tt> <tt class="py-param">parse</tt><tt class="py-op">=</tt><tt class="py-string">"xml"</tt><tt class="py-op">,</tt> <tt class="py-param">encoding</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ElementIncludeTestCase.xinclude_loader-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ElementIncludeTestCase.xinclude_loader-expanded"><a name="L4345"></a><tt class="py-lineno">4345</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L4346"></a><tt class="py-lineno">4346</tt>  <tt class="py-line">            <tt id="link-4476" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
+lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4476', 'data', 'link-1147');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">textwrap</tt><tt class="py-op">.</tt><tt class="py-name">dedent</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4477" class="py-name"><a title="lxml.ElementInclude.XINCLUDE
 lxml.etree.ErrorDomains.XINCLUDE
 lxml.tests.selftest.XINCLUDE
-lxml.tests.test_etree.ElementIncludeTestCase.XINCLUDE" class="py-name" href="#" onclick="return doclink('link-4480', 'XINCLUDE', 'link-4475');">XINCLUDE</a></tt><tt class="py-op">[</tt><tt class="py-name">href</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4334"></a><tt class="py-lineno">4334</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">KeyError</tt><tt class="py-op">:</tt> </tt>
-<a name="L4335"></a><tt class="py-lineno">4335</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">OSError</tt><tt class="py-op">(</tt><tt class="py-string">"resource not found"</tt><tt class="py-op">)</tt> </tt>
-<a name="L4336"></a><tt class="py-lineno">4336</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-4481" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_etree.ElementIncludeTestCase.XINCLUDE" class="py-name" href="#" onclick="return doclink('link-4477', 'XINCLUDE', 'link-4472');">XINCLUDE</a></tt><tt class="py-op">[</tt><tt class="py-name">href</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4347"></a><tt class="py-lineno">4347</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">KeyError</tt><tt class="py-op">:</tt> </tt>
+<a name="L4348"></a><tt class="py-lineno">4348</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">OSError</tt><tt class="py-op">(</tt><tt class="py-string">"resource not found"</tt><tt class="py-op">)</tt> </tt>
+<a name="L4349"></a><tt class="py-lineno">4349</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-4478" 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-4481', 'parse', 'link-870');">parse</a></tt> <tt class="py-op">==</tt> <tt class="py-string">"xml"</tt><tt class="py-op">:</tt> </tt>
-<a name="L4337"></a><tt class="py-lineno">4337</tt>  <tt class="py-line">            <tt id="link-4482" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
-lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4482', 'data', 'link-1150');">data</a></tt> <tt class="py-op">=</tt> <tt id="link-4483" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4478', 'parse', 'link-867');">parse</a></tt> <tt class="py-op">==</tt> <tt class="py-string">"xml"</tt><tt class="py-op">:</tt> </tt>
+<a name="L4350"></a><tt class="py-lineno">4350</tt>  <tt class="py-line">            <tt id="link-4479" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
+lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4479', 'data', 'link-1147');">data</a></tt> <tt class="py-op">=</tt> <tt id="link-4480" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -14041,239 +14037,239 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4483', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4484" class="py-name"><a title="lxml.etree.fromstring
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4480', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4481" 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-4484', 'fromstring', 'link-850');">fromstring</a></tt><tt class="py-op">(</tt><tt id="link-4485" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
-lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4485', 'data', 'link-1150');">data</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L4338"></a><tt class="py-lineno">4338</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-4486" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
-lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4486', 'data', 'link-1150');">data</a></tt> </tt>
-</div><a name="L4339"></a><tt class="py-lineno">4339</tt>  <tt class="py-line"> </tt>
-<a name="ElementIncludeTestCase.test_xinclude_failures"></a><div id="ElementIncludeTestCase.test_xinclude_failures-def"><a name="L4340"></a><tt class="py-lineno">4340</tt> <a class="py-toggle" href="#" id="ElementIncludeTestCase.test_xinclude_failures-toggle" onclick="return toggle('ElementIncludeTestCase.test_xinclude_failures');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ElementIncludeTestCase-class.html#test_xinclude_failures">test_xinclude_failures</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ElementIncludeTestCase.test_xinclude_failures-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ElementIncludeTestCase.test_xinclude_failures-expanded"><a name="L4341"></a><tt class="py-lineno">4341</tt>  <tt class="py-line">        <tt class="py-comment"># Test infinitely recursive includes.</tt> </tt>
-<a name="L4342"></a><tt class="py-lineno">4342</tt>  <tt class="py-line">        <tt class="py-name">document</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4487" class="py-name" targets="Function lxml.tests.selftest.xinclude_loader()=lxml.tests.selftest-module.html#xinclude_loader,Method lxml.tests.test_etree.ElementIncludeTestCase.xinclude_loader()=lxml.tests.test_etree.ElementIncludeTestCase-class.html#xinclude_loader"><a title="lxml.tests.selftest.xinclude_loader
-lxml.tests.test_etree.ElementIncludeTestCase.xinclude_loader" class="py-name" href="#" onclick="return doclink('link-4487', 'xinclude_loader', 'link-4487');">xinclude_loader</a></tt><tt class="py-op">(</tt><tt class="py-string">"Recursive1.xml"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-4488" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-4488', 'getroottree', 'link-2696');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L4343"></a><tt class="py-lineno">4343</tt>  <tt class="py-line">        <tt class="py-keyword">with</tt> <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">self</tt><tt class="py-op">.</tt><tt id="link-4489" class="py-name"><a title="lxml.ElementInclude" class="py-name" href="#" onclick="return doclink('link-4489', 'ElementInclude', 'link-4471');">ElementInclude</a></tt><tt class="py-op">.</tt><tt id="link-4490" class="py-name" targets="Class lxml.ElementInclude.FatalIncludeError=lxml.ElementInclude.FatalIncludeError-class.html"><a title="lxml.ElementInclude.FatalIncludeError" class="py-name" href="#" onclick="return doclink('link-4490', 'FatalIncludeError', 'link-4490');">FatalIncludeError</a></tt><tt class="py-op">)</tt> <tt class="py-keyword">as</tt> <tt class="py-name">cm</tt><tt class="py-op">:</tt> </tt>
-<a name="L4344"></a><tt class="py-lineno">4344</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4491" 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-4491', 'include', 'link-4412');">include</a></tt><tt class="py-op">(</tt><tt class="py-name">document</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4492" class="py-name"><a title="lxml.tests.selftest.xinclude_loader
-lxml.tests.test_etree.ElementIncludeTestCase.xinclude_loader" class="py-name" href="#" onclick="return doclink('link-4492', 'xinclude_loader', 'link-4487');">xinclude_loader</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L4345"></a><tt class="py-lineno">4345</tt>  <tt class="py-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-4493" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-4493', 'str', 'link-30');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">cm</tt><tt class="py-op">.</tt><tt class="py-name">exception</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L4346"></a><tt class="py-lineno">4346</tt>  <tt class="py-line">                         <tt class="py-string">"recursive include of 'Recursive2.xml' detected"</tt><tt class="py-op">)</tt> </tt>
-<a name="L4347"></a><tt class="py-lineno">4347</tt>  <tt class="py-line"> </tt>
-<a name="L4348"></a><tt class="py-lineno">4348</tt>  <tt class="py-line">        <tt class="py-comment"># Test 'max_depth' limitation.</tt> </tt>
-<a name="L4349"></a><tt class="py-lineno">4349</tt>  <tt class="py-line">        <tt class="py-name">document</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4494" class="py-name"><a title="lxml.tests.selftest.xinclude_loader
-lxml.tests.test_etree.ElementIncludeTestCase.xinclude_loader" class="py-name" href="#" onclick="return doclink('link-4494', 'xinclude_loader', 'link-4487');">xinclude_loader</a></tt><tt class="py-op">(</tt><tt class="py-string">"Recursive1.xml"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-4495" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-4495', 'getroottree', 'link-2696');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L4350"></a><tt class="py-lineno">4350</tt>  <tt class="py-line">        <tt class="py-keyword">with</tt> <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">self</tt><tt class="py-op">.</tt><tt id="link-4496" class="py-name"><a title="lxml.ElementInclude" class="py-name" href="#" onclick="return doclink('link-4496', 'ElementInclude', 'link-4471');">ElementInclude</a></tt><tt class="py-op">.</tt><tt id="link-4497" class="py-name"><a title="lxml.ElementInclude.FatalIncludeError" class="py-name" href="#" onclick="return doclink('link-4497', 'FatalIncludeError', 'link-4490');">FatalIncludeError</a></tt><tt class="py-op">)</tt> <tt class="py-keyword">as</tt> <tt class="py-name">cm</tt><tt class="py-op">:</tt> </tt>
-<a name="L4351"></a><tt class="py-lineno">4351</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4498" class="py-name"><a title="lxml.ElementInclude.include
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-4481', 'fromstring', 'link-847');">fromstring</a></tt><tt class="py-op">(</tt><tt id="link-4482" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
+lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4482', 'data', 'link-1147');">data</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L4351"></a><tt class="py-lineno">4351</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-4483" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
+lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4483', 'data', 'link-1147');">data</a></tt> </tt>
+</div><a name="L4352"></a><tt class="py-lineno">4352</tt>  <tt class="py-line"> </tt>
+<a name="ElementIncludeTestCase.test_xinclude_failures"></a><div id="ElementIncludeTestCase.test_xinclude_failures-def"><a name="L4353"></a><tt class="py-lineno">4353</tt> <a class="py-toggle" href="#" id="ElementIncludeTestCase.test_xinclude_failures-toggle" onclick="return toggle('ElementIncludeTestCase.test_xinclude_failures');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ElementIncludeTestCase-class.html#test_xinclude_failures">test_xinclude_failures</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ElementIncludeTestCase.test_xinclude_failures-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ElementIncludeTestCase.test_xinclude_failures-expanded"><a name="L4354"></a><tt class="py-lineno">4354</tt>  <tt class="py-line">        <tt class="py-comment"># Test infinitely recursive includes.</tt> </tt>
+<a name="L4355"></a><tt class="py-lineno">4355</tt>  <tt class="py-line">        <tt class="py-name">document</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4484" class="py-name" targets="Function lxml.tests.selftest.xinclude_loader()=lxml.tests.selftest-module.html#xinclude_loader,Method lxml.tests.test_etree.ElementIncludeTestCase.xinclude_loader()=lxml.tests.test_etree.ElementIncludeTestCase-class.html#xinclude_loader"><a title="lxml.tests.selftest.xinclude_loader
+lxml.tests.test_etree.ElementIncludeTestCase.xinclude_loader" class="py-name" href="#" onclick="return doclink('link-4484', 'xinclude_loader', 'link-4484');">xinclude_loader</a></tt><tt class="py-op">(</tt><tt class="py-string">"Recursive1.xml"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-4485" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-4485', 'getroottree', 'link-2693');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L4356"></a><tt class="py-lineno">4356</tt>  <tt class="py-line">        <tt class="py-keyword">with</tt> <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">self</tt><tt class="py-op">.</tt><tt id="link-4486" class="py-name"><a title="lxml.ElementInclude" class="py-name" href="#" onclick="return doclink('link-4486', 'ElementInclude', 'link-4468');">ElementInclude</a></tt><tt class="py-op">.</tt><tt id="link-4487" class="py-name" targets="Class lxml.ElementInclude.FatalIncludeError=lxml.ElementInclude.FatalIncludeError-class.html"><a title="lxml.ElementInclude.FatalIncludeError" class="py-name" href="#" onclick="return doclink('link-4487', 'FatalIncludeError', 'link-4487');">FatalIncludeError</a></tt><tt class="py-op">)</tt> <tt class="py-keyword">as</tt> <tt class="py-name">cm</tt><tt class="py-op">:</tt> </tt>
+<a name="L4357"></a><tt class="py-lineno">4357</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4488" 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-4498', 'include', 'link-4412');">include</a></tt><tt class="py-op">(</tt><tt class="py-name">document</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4499" class="py-name"><a title="lxml.tests.selftest.xinclude_loader
-lxml.tests.test_etree.ElementIncludeTestCase.xinclude_loader" class="py-name" href="#" onclick="return doclink('link-4499', 'xinclude_loader', 'link-4487');">xinclude_loader</a></tt><tt class="py-op">,</tt> <tt class="py-name">max_depth</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L4352"></a><tt class="py-lineno">4352</tt>  <tt class="py-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-4500" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-4500', 'str', 'link-30');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">cm</tt><tt class="py-op">.</tt><tt class="py-name">exception</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L4353"></a><tt class="py-lineno">4353</tt>  <tt class="py-line">                         <tt class="py-string">"recursive include of 'Recursive2.xml' detected"</tt><tt class="py-op">)</tt> </tt>
-<a name="L4354"></a><tt class="py-lineno">4354</tt>  <tt class="py-line"> </tt>
-<a name="L4355"></a><tt class="py-lineno">4355</tt>  <tt class="py-line">        <tt class="py-name">document</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4501" class="py-name"><a title="lxml.tests.selftest.xinclude_loader
-lxml.tests.test_etree.ElementIncludeTestCase.xinclude_loader" class="py-name" href="#" onclick="return doclink('link-4501', 'xinclude_loader', 'link-4487');">xinclude_loader</a></tt><tt class="py-op">(</tt><tt class="py-string">"Recursive1.xml"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-4502" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-4502', 'getroottree', 'link-2696');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L4356"></a><tt class="py-lineno">4356</tt>  <tt class="py-line">        <tt class="py-keyword">with</tt> <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">self</tt><tt class="py-op">.</tt><tt id="link-4503" class="py-name"><a title="lxml.ElementInclude" class="py-name" href="#" onclick="return doclink('link-4503', 'ElementInclude', 'link-4471');">ElementInclude</a></tt><tt class="py-op">.</tt><tt id="link-4504" class="py-name" targets="Class lxml.ElementInclude.LimitedRecursiveIncludeError=lxml.ElementInclude.LimitedRecursiveIncludeError-class.html"><a title="lxml.ElementInclude.LimitedRecursiveIncludeError" class="py-name" href="#" onclick="return doclink('link-4504', 'LimitedRecursiveIncludeError', 'link-4504');">LimitedRecursiveIncludeError</a></tt><tt class="py-op">)</tt> <tt class="py-keyword">as</tt> <tt class="py-name">cm</tt><tt class="py-op">:</tt> </tt>
-<a name="L4357"></a><tt class="py-lineno">4357</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4505" 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-4505', 'include', 'link-4412');">include</a></tt><tt class="py-op">(</tt><tt class="py-name">document</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4506" class="py-name"><a title="lxml.tests.selftest.xinclude_loader
-lxml.tests.test_etree.ElementIncludeTestCase.xinclude_loader" class="py-name" href="#" onclick="return doclink('link-4506', 'xinclude_loader', 'link-4487');">xinclude_loader</a></tt><tt class="py-op">,</tt> <tt class="py-name">max_depth</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
-<a name="L4358"></a><tt class="py-lineno">4358</tt>  <tt class="py-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-4507" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-4507', 'str', 'link-30');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">cm</tt><tt class="py-op">.</tt><tt class="py-name">exception</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L4359"></a><tt class="py-lineno">4359</tt>  <tt class="py-line">                         <tt class="py-string">"maximum xinclude depth reached when including file Recursive2.xml"</tt><tt class="py-op">)</tt> </tt>
+lxml.tests.test_etree.ElementIncludeTestCase.include" class="py-name" href="#" onclick="return doclink('link-4488', 'include', 'link-4409');">include</a></tt><tt class="py-op">(</tt><tt class="py-name">document</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4489" class="py-name"><a title="lxml.tests.selftest.xinclude_loader
+lxml.tests.test_etree.ElementIncludeTestCase.xinclude_loader" class="py-name" href="#" onclick="return doclink('link-4489', 'xinclude_loader', 'link-4484');">xinclude_loader</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L4358"></a><tt class="py-lineno">4358</tt>  <tt class="py-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-4490" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-4490', 'str', 'link-30');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">cm</tt><tt class="py-op">.</tt><tt class="py-name">exception</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L4359"></a><tt class="py-lineno">4359</tt>  <tt class="py-line">                         <tt class="py-string">"recursive include of 'Recursive2.xml' detected"</tt><tt class="py-op">)</tt> </tt>
 <a name="L4360"></a><tt class="py-lineno">4360</tt>  <tt class="py-line"> </tt>
-<a name="L4361"></a><tt class="py-lineno">4361</tt>  <tt class="py-line">        <tt class="py-name">document</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4508" class="py-name"><a title="lxml.tests.selftest.xinclude_loader
-lxml.tests.test_etree.ElementIncludeTestCase.xinclude_loader" class="py-name" href="#" onclick="return doclink('link-4508', 'xinclude_loader', 'link-4487');">xinclude_loader</a></tt><tt class="py-op">(</tt><tt class="py-string">"Recursive1.xml"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-4509" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-4509', 'getroottree', 'link-2696');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L4362"></a><tt class="py-lineno">4362</tt>  <tt class="py-line">        <tt class="py-keyword">with</tt> <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">self</tt><tt class="py-op">.</tt><tt id="link-4510" class="py-name"><a title="lxml.ElementInclude" class="py-name" href="#" onclick="return doclink('link-4510', 'ElementInclude', 'link-4471');">ElementInclude</a></tt><tt class="py-op">.</tt><tt id="link-4511" class="py-name"><a title="lxml.ElementInclude.LimitedRecursiveIncludeError" class="py-name" href="#" onclick="return doclink('link-4511', 'LimitedRecursiveIncludeError', 'link-4504');">LimitedRecursiveIncludeError</a></tt><tt class="py-op">)</tt> <tt class="py-keyword">as</tt> <tt class="py-name">cm</tt><tt class="py-op">:</tt> </tt>
-<a name="L4363"></a><tt class="py-lineno">4363</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4512" class="py-name"><a title="lxml.ElementInclude.include
+<a name="L4361"></a><tt class="py-lineno">4361</tt>  <tt class="py-line">        <tt class="py-comment"># Test 'max_depth' limitation.</tt> </tt>
+<a name="L4362"></a><tt class="py-lineno">4362</tt>  <tt class="py-line">        <tt class="py-name">document</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4491" class="py-name"><a title="lxml.tests.selftest.xinclude_loader
+lxml.tests.test_etree.ElementIncludeTestCase.xinclude_loader" class="py-name" href="#" onclick="return doclink('link-4491', 'xinclude_loader', 'link-4484');">xinclude_loader</a></tt><tt class="py-op">(</tt><tt class="py-string">"Recursive1.xml"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-4492" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-4492', 'getroottree', 'link-2693');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L4363"></a><tt class="py-lineno">4363</tt>  <tt class="py-line">        <tt class="py-keyword">with</tt> <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">self</tt><tt class="py-op">.</tt><tt id="link-4493" class="py-name"><a title="lxml.ElementInclude" class="py-name" href="#" onclick="return doclink('link-4493', 'ElementInclude', 'link-4468');">ElementInclude</a></tt><tt class="py-op">.</tt><tt id="link-4494" class="py-name"><a title="lxml.ElementInclude.FatalIncludeError" class="py-name" href="#" onclick="return doclink('link-4494', 'FatalIncludeError', 'link-4487');">FatalIncludeError</a></tt><tt class="py-op">)</tt> <tt class="py-keyword">as</tt> <tt class="py-name">cm</tt><tt class="py-op">:</tt> </tt>
+<a name="L4364"></a><tt class="py-lineno">4364</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4495" 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-4512', 'include', 'link-4412');">include</a></tt><tt class="py-op">(</tt><tt class="py-name">document</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4513" class="py-name"><a title="lxml.tests.selftest.xinclude_loader
-lxml.tests.test_etree.ElementIncludeTestCase.xinclude_loader" class="py-name" href="#" onclick="return doclink('link-4513', 'xinclude_loader', 'link-4487');">xinclude_loader</a></tt><tt class="py-op">,</tt> <tt class="py-name">max_depth</tt><tt class="py-op">=</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-<a name="L4364"></a><tt class="py-lineno">4364</tt>  <tt class="py-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-4514" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-4514', 'str', 'link-30');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">cm</tt><tt class="py-op">.</tt><tt class="py-name">exception</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L4365"></a><tt class="py-lineno">4365</tt>  <tt class="py-line">                         <tt class="py-string">"maximum xinclude depth reached when including file Recursive3.xml"</tt><tt class="py-op">)</tt> </tt>
-<a name="L4366"></a><tt class="py-lineno">4366</tt>  <tt class="py-line"> </tt>
-<a name="L4367"></a><tt class="py-lineno">4367</tt>  <tt class="py-line">        <tt class="py-name">document</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4515" class="py-name"><a title="lxml.tests.selftest.xinclude_loader
-lxml.tests.test_etree.ElementIncludeTestCase.xinclude_loader" class="py-name" href="#" onclick="return doclink('link-4515', 'xinclude_loader', 'link-4487');">xinclude_loader</a></tt><tt class="py-op">(</tt><tt class="py-string">"Recursive1.xml"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-4516" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-4516', 'getroottree', 'link-2696');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L4368"></a><tt class="py-lineno">4368</tt>  <tt class="py-line">        <tt class="py-keyword">with</tt> <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">self</tt><tt class="py-op">.</tt><tt id="link-4517" class="py-name"><a title="lxml.ElementInclude" class="py-name" href="#" onclick="return doclink('link-4517', 'ElementInclude', 'link-4471');">ElementInclude</a></tt><tt class="py-op">.</tt><tt id="link-4518" class="py-name"><a title="lxml.ElementInclude.LimitedRecursiveIncludeError" class="py-name" href="#" onclick="return doclink('link-4518', 'LimitedRecursiveIncludeError', 'link-4504');">LimitedRecursiveIncludeError</a></tt><tt class="py-op">)</tt> <tt class="py-keyword">as</tt> <tt class="py-name">cm</tt><tt class="py-op">:</tt> </tt>
-<a name="L4369"></a><tt class="py-lineno">4369</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4519" class="py-name"><a title="lxml.ElementInclude.include
+lxml.tests.test_etree.ElementIncludeTestCase.include" class="py-name" href="#" onclick="return doclink('link-4495', 'include', 'link-4409');">include</a></tt><tt class="py-op">(</tt><tt class="py-name">document</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4496" class="py-name"><a title="lxml.tests.selftest.xinclude_loader
+lxml.tests.test_etree.ElementIncludeTestCase.xinclude_loader" class="py-name" href="#" onclick="return doclink('link-4496', 'xinclude_loader', 'link-4484');">xinclude_loader</a></tt><tt class="py-op">,</tt> <tt class="py-name">max_depth</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L4365"></a><tt class="py-lineno">4365</tt>  <tt class="py-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-4497" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-4497', 'str', 'link-30');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">cm</tt><tt class="py-op">.</tt><tt class="py-name">exception</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L4366"></a><tt class="py-lineno">4366</tt>  <tt class="py-line">                         <tt class="py-string">"recursive include of 'Recursive2.xml' detected"</tt><tt class="py-op">)</tt> </tt>
+<a name="L4367"></a><tt class="py-lineno">4367</tt>  <tt class="py-line"> </tt>
+<a name="L4368"></a><tt class="py-lineno">4368</tt>  <tt class="py-line">        <tt class="py-name">document</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4498" class="py-name"><a title="lxml.tests.selftest.xinclude_loader
+lxml.tests.test_etree.ElementIncludeTestCase.xinclude_loader" class="py-name" href="#" onclick="return doclink('link-4498', 'xinclude_loader', 'link-4484');">xinclude_loader</a></tt><tt class="py-op">(</tt><tt class="py-string">"Recursive1.xml"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-4499" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-4499', 'getroottree', 'link-2693');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L4369"></a><tt class="py-lineno">4369</tt>  <tt class="py-line">        <tt class="py-keyword">with</tt> <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">self</tt><tt class="py-op">.</tt><tt id="link-4500" class="py-name"><a title="lxml.ElementInclude" class="py-name" href="#" onclick="return doclink('link-4500', 'ElementInclude', 'link-4468');">ElementInclude</a></tt><tt class="py-op">.</tt><tt id="link-4501" class="py-name" targets="Class lxml.ElementInclude.LimitedRecursiveIncludeError=lxml.ElementInclude.LimitedRecursiveIncludeError-class.html"><a title="lxml.ElementInclude.LimitedRecursiveIncludeError" class="py-name" href="#" onclick="return doclink('link-4501', 'LimitedRecursiveIncludeError', 'link-4501');">LimitedRecursiveIncludeError</a></tt><tt class="py-op">)</tt> <tt class="py-keyword">as</tt> <tt class="py-name">cm</tt><tt class="py-op">:</tt> </tt>
+<a name="L4370"></a><tt class="py-lineno">4370</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4502" 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-4519', 'include', 'link-4412');">include</a></tt><tt class="py-op">(</tt><tt class="py-name">document</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4520" class="py-name"><a title="lxml.tests.selftest.xinclude_loader
-lxml.tests.test_etree.ElementIncludeTestCase.xinclude_loader" class="py-name" href="#" onclick="return doclink('link-4520', 'xinclude_loader', 'link-4487');">xinclude_loader</a></tt><tt class="py-op">,</tt> <tt class="py-name">max_depth</tt><tt class="py-op">=</tt><tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
-<a name="L4370"></a><tt class="py-lineno">4370</tt>  <tt class="py-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-4521" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-4521', 'str', 'link-30');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">cm</tt><tt class="py-op">.</tt><tt class="py-name">exception</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L4371"></a><tt class="py-lineno">4371</tt>  <tt class="py-line">                         <tt class="py-string">"maximum xinclude depth reached when including file Recursive1.xml"</tt><tt class="py-op">)</tt> </tt>
-<a name="L4372"></a><tt class="py-lineno">4372</tt>  <tt class="py-line"> </tt>
-<a name="L4373"></a><tt class="py-lineno">4373</tt>  <tt class="py-line">        <tt class="py-name">document</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4522" class="py-name"><a title="lxml.tests.selftest.xinclude_loader
-lxml.tests.test_etree.ElementIncludeTestCase.xinclude_loader" class="py-name" href="#" onclick="return doclink('link-4522', 'xinclude_loader', 'link-4487');">xinclude_loader</a></tt><tt class="py-op">(</tt><tt class="py-string">"Recursive1.xml"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-4523" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-4523', 'getroottree', 'link-2696');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L4374"></a><tt class="py-lineno">4374</tt>  <tt class="py-line">        <tt class="py-keyword">with</tt> <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">self</tt><tt class="py-op">.</tt><tt id="link-4524" class="py-name"><a title="lxml.ElementInclude" class="py-name" href="#" onclick="return doclink('link-4524', 'ElementInclude', 'link-4471');">ElementInclude</a></tt><tt class="py-op">.</tt><tt id="link-4525" class="py-name"><a title="lxml.ElementInclude.FatalIncludeError" class="py-name" href="#" onclick="return doclink('link-4525', 'FatalIncludeError', 'link-4490');">FatalIncludeError</a></tt><tt class="py-op">)</tt> <tt class="py-keyword">as</tt> <tt class="py-name">cm</tt><tt class="py-op">:</tt> </tt>
-<a name="L4375"></a><tt class="py-lineno">4375</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4526" class="py-name"><a title="lxml.ElementInclude.include
+lxml.tests.test_etree.ElementIncludeTestCase.include" class="py-name" href="#" onclick="return doclink('link-4502', 'include', 'link-4409');">include</a></tt><tt class="py-op">(</tt><tt class="py-name">document</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4503" class="py-name"><a title="lxml.tests.selftest.xinclude_loader
+lxml.tests.test_etree.ElementIncludeTestCase.xinclude_loader" class="py-name" href="#" onclick="return doclink('link-4503', 'xinclude_loader', 'link-4484');">xinclude_loader</a></tt><tt class="py-op">,</tt> <tt class="py-name">max_depth</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L4371"></a><tt class="py-lineno">4371</tt>  <tt class="py-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-4504" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-4504', 'str', 'link-30');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">cm</tt><tt class="py-op">.</tt><tt class="py-name">exception</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L4372"></a><tt class="py-lineno">4372</tt>  <tt class="py-line">                         <tt class="py-string">"maximum xinclude depth reached when including file Recursive2.xml"</tt><tt class="py-op">)</tt> </tt>
+<a name="L4373"></a><tt class="py-lineno">4373</tt>  <tt class="py-line"> </tt>
+<a name="L4374"></a><tt class="py-lineno">4374</tt>  <tt class="py-line">        <tt class="py-name">document</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4505" class="py-name"><a title="lxml.tests.selftest.xinclude_loader
+lxml.tests.test_etree.ElementIncludeTestCase.xinclude_loader" class="py-name" href="#" onclick="return doclink('link-4505', 'xinclude_loader', 'link-4484');">xinclude_loader</a></tt><tt class="py-op">(</tt><tt class="py-string">"Recursive1.xml"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-4506" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-4506', 'getroottree', 'link-2693');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L4375"></a><tt class="py-lineno">4375</tt>  <tt class="py-line">        <tt class="py-keyword">with</tt> <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">self</tt><tt class="py-op">.</tt><tt id="link-4507" class="py-name"><a title="lxml.ElementInclude" class="py-name" href="#" onclick="return doclink('link-4507', 'ElementInclude', 'link-4468');">ElementInclude</a></tt><tt class="py-op">.</tt><tt id="link-4508" class="py-name"><a title="lxml.ElementInclude.LimitedRecursiveIncludeError" class="py-name" href="#" onclick="return doclink('link-4508', 'LimitedRecursiveIncludeError', 'link-4501');">LimitedRecursiveIncludeError</a></tt><tt class="py-op">)</tt> <tt class="py-keyword">as</tt> <tt class="py-name">cm</tt><tt class="py-op">:</tt> </tt>
+<a name="L4376"></a><tt class="py-lineno">4376</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4509" 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-4526', 'include', 'link-4412');">include</a></tt><tt class="py-op">(</tt><tt class="py-name">document</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4527" class="py-name"><a title="lxml.tests.selftest.xinclude_loader
-lxml.tests.test_etree.ElementIncludeTestCase.xinclude_loader" class="py-name" href="#" onclick="return doclink('link-4527', 'xinclude_loader', 'link-4487');">xinclude_loader</a></tt><tt class="py-op">,</tt> <tt class="py-name">max_depth</tt><tt class="py-op">=</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="L4376"></a><tt class="py-lineno">4376</tt>  <tt class="py-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-4528" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-4528', 'str', 'link-30');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">cm</tt><tt class="py-op">.</tt><tt class="py-name">exception</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L4377"></a><tt class="py-lineno">4377</tt>  <tt class="py-line">                         <tt class="py-string">"recursive include of 'Recursive2.xml' detected"</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L4378"></a><tt class="py-lineno">4378</tt>  <tt class="py-line"> </tt>
+lxml.tests.test_etree.ElementIncludeTestCase.include" class="py-name" href="#" onclick="return doclink('link-4509', 'include', 'link-4409');">include</a></tt><tt class="py-op">(</tt><tt class="py-name">document</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4510" class="py-name"><a title="lxml.tests.selftest.xinclude_loader
+lxml.tests.test_etree.ElementIncludeTestCase.xinclude_loader" class="py-name" href="#" onclick="return doclink('link-4510', 'xinclude_loader', 'link-4484');">xinclude_loader</a></tt><tt class="py-op">,</tt> <tt class="py-name">max_depth</tt><tt class="py-op">=</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L4377"></a><tt class="py-lineno">4377</tt>  <tt class="py-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-4511" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-4511', 'str', 'link-30');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">cm</tt><tt class="py-op">.</tt><tt class="py-name">exception</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L4378"></a><tt class="py-lineno">4378</tt>  <tt class="py-line">                         <tt class="py-string">"maximum xinclude depth reached when including file Recursive3.xml"</tt><tt class="py-op">)</tt> </tt>
 <a name="L4379"></a><tt class="py-lineno">4379</tt>  <tt class="py-line"> </tt>
-<a name="ETreeC14NTestCase"></a><div id="ETreeC14NTestCase-def"><a name="L4380"></a><tt class="py-lineno">4380</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="L4381"></a><tt class="py-lineno">4381</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="L4382"></a><tt class="py-lineno">4382</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-4529" 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-4529', 'parse', 'link-870');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4530" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4530', '_bytes', 'link-18');">_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="L4383"></a><tt class="py-lineno">4383</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="L4384"></a><tt class="py-lineno">4384</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4531" 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-4531', 'write_c14n', 'link-4531');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L4385"></a><tt class="py-lineno">4385</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="L4386"></a><tt class="py-lineno">4386</tt>  <tt class="py-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-4532" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4532', '_bytes', 'link-18');">_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="L4387"></a><tt class="py-lineno">4387</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L4388"></a><tt class="py-lineno">4388</tt>  <tt class="py-line"> </tt>
-<a name="ETreeC14NTestCase.test_c14n_gzip"></a><div id="ETreeC14NTestCase.test_c14n_gzip-def"><a name="L4389"></a><tt class="py-lineno">4389</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="L4390"></a><tt class="py-lineno">4390</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-4533" class="py-name"><a title="lxml.etree._ElementTree.parse
+<a name="L4380"></a><tt class="py-lineno">4380</tt>  <tt class="py-line">        <tt class="py-name">document</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4512" class="py-name"><a title="lxml.tests.selftest.xinclude_loader
+lxml.tests.test_etree.ElementIncludeTestCase.xinclude_loader" class="py-name" href="#" onclick="return doclink('link-4512', 'xinclude_loader', 'link-4484');">xinclude_loader</a></tt><tt class="py-op">(</tt><tt class="py-string">"Recursive1.xml"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-4513" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-4513', 'getroottree', 'link-2693');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L4381"></a><tt class="py-lineno">4381</tt>  <tt class="py-line">        <tt class="py-keyword">with</tt> <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">self</tt><tt class="py-op">.</tt><tt id="link-4514" class="py-name"><a title="lxml.ElementInclude" class="py-name" href="#" onclick="return doclink('link-4514', 'ElementInclude', 'link-4468');">ElementInclude</a></tt><tt class="py-op">.</tt><tt id="link-4515" class="py-name"><a title="lxml.ElementInclude.LimitedRecursiveIncludeError" class="py-name" href="#" onclick="return doclink('link-4515', 'LimitedRecursiveIncludeError', 'link-4501');">LimitedRecursiveIncludeError</a></tt><tt class="py-op">)</tt> <tt class="py-keyword">as</tt> <tt class="py-name">cm</tt><tt class="py-op">:</tt> </tt>
+<a name="L4382"></a><tt class="py-lineno">4382</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4516" 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-4516', 'include', 'link-4409');">include</a></tt><tt class="py-op">(</tt><tt class="py-name">document</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4517" class="py-name"><a title="lxml.tests.selftest.xinclude_loader
+lxml.tests.test_etree.ElementIncludeTestCase.xinclude_loader" class="py-name" href="#" onclick="return doclink('link-4517', 'xinclude_loader', 'link-4484');">xinclude_loader</a></tt><tt class="py-op">,</tt> <tt class="py-name">max_depth</tt><tt class="py-op">=</tt><tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+<a name="L4383"></a><tt class="py-lineno">4383</tt>  <tt class="py-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-4518" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-4518', 'str', 'link-30');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">cm</tt><tt class="py-op">.</tt><tt class="py-name">exception</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L4384"></a><tt class="py-lineno">4384</tt>  <tt class="py-line">                         <tt class="py-string">"maximum xinclude depth reached when including file Recursive1.xml"</tt><tt class="py-op">)</tt> </tt>
+<a name="L4385"></a><tt class="py-lineno">4385</tt>  <tt class="py-line"> </tt>
+<a name="L4386"></a><tt class="py-lineno">4386</tt>  <tt class="py-line">        <tt class="py-name">document</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4519" class="py-name"><a title="lxml.tests.selftest.xinclude_loader
+lxml.tests.test_etree.ElementIncludeTestCase.xinclude_loader" class="py-name" href="#" onclick="return doclink('link-4519', 'xinclude_loader', 'link-4484');">xinclude_loader</a></tt><tt class="py-op">(</tt><tt class="py-string">"Recursive1.xml"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-4520" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-4520', 'getroottree', 'link-2693');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L4387"></a><tt class="py-lineno">4387</tt>  <tt class="py-line">        <tt class="py-keyword">with</tt> <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">self</tt><tt class="py-op">.</tt><tt id="link-4521" class="py-name"><a title="lxml.ElementInclude" class="py-name" href="#" onclick="return doclink('link-4521', 'ElementInclude', 'link-4468');">ElementInclude</a></tt><tt class="py-op">.</tt><tt id="link-4522" class="py-name"><a title="lxml.ElementInclude.FatalIncludeError" class="py-name" href="#" onclick="return doclink('link-4522', 'FatalIncludeError', 'link-4487');">FatalIncludeError</a></tt><tt class="py-op">)</tt> <tt class="py-keyword">as</tt> <tt class="py-name">cm</tt><tt class="py-op">:</tt> </tt>
+<a name="L4388"></a><tt class="py-lineno">4388</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4523" 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-4523', 'include', 'link-4409');">include</a></tt><tt class="py-op">(</tt><tt class="py-name">document</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4524" class="py-name"><a title="lxml.tests.selftest.xinclude_loader
+lxml.tests.test_etree.ElementIncludeTestCase.xinclude_loader" class="py-name" href="#" onclick="return doclink('link-4524', 'xinclude_loader', 'link-4484');">xinclude_loader</a></tt><tt class="py-op">,</tt> <tt class="py-name">max_depth</tt><tt class="py-op">=</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="L4389"></a><tt class="py-lineno">4389</tt>  <tt class="py-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-4525" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-4525', 'str', 'link-30');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">cm</tt><tt class="py-op">.</tt><tt class="py-name">exception</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L4390"></a><tt class="py-lineno">4390</tt>  <tt class="py-line">                         <tt class="py-string">"recursive include of 'Recursive2.xml' detected"</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L4391"></a><tt class="py-lineno">4391</tt>  <tt class="py-line"> </tt>
+<a name="L4392"></a><tt class="py-lineno">4392</tt>  <tt class="py-line"> </tt>
+<a name="ETreeC14NTestCase"></a><div id="ETreeC14NTestCase-def"><a name="L4393"></a><tt class="py-lineno">4393</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="L4394"></a><tt class="py-lineno">4394</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="L4395"></a><tt class="py-lineno">4395</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-4526" 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-4533', 'parse', 'link-870');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4534" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4534', '_bytes', 'link-18');">_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="L4391"></a><tt class="py-lineno">4391</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="L4392"></a><tt class="py-lineno">4392</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4535" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-4535', 'write_c14n', 'link-4531');">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="L4393"></a><tt class="py-lineno">4393</tt>  <tt class="py-line">        <tt class="py-keyword">with</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 class="py-keyword">as</tt> <tt class="py-name">gzfile</tt><tt class="py-op">:</tt> </tt>
-<a name="L4394"></a><tt class="py-lineno">4394</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-4536" 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-4536', 'read', 'link-4536');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L4395"></a><tt class="py-lineno">4395</tt>  <tt class="py-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-4537" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4537', '_bytes', 'link-18');">_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="L4396"></a><tt class="py-lineno">4396</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L4397"></a><tt class="py-lineno">4397</tt>  <tt class="py-line"> </tt>
-<a name="ETreeC14NTestCase.test_c14n_file"></a><div id="ETreeC14NTestCase.test_c14n_file-def"><a name="L4398"></a><tt class="py-lineno">4398</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="L4399"></a><tt class="py-lineno">4399</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-4538" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4526', 'parse', 'link-867');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4527" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4527', '_bytes', 'link-18');">_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="L4396"></a><tt class="py-lineno">4396</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="L4397"></a><tt class="py-lineno">4397</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4528" 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-4528', 'write_c14n', 'link-4528');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L4398"></a><tt class="py-lineno">4398</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="L4399"></a><tt class="py-lineno">4399</tt>  <tt class="py-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-4529" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4529', '_bytes', 'link-18');">_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="L4400"></a><tt class="py-lineno">4400</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L4401"></a><tt class="py-lineno">4401</tt>  <tt class="py-line"> </tt>
+<a name="ETreeC14NTestCase.test_c14n_gzip"></a><div id="ETreeC14NTestCase.test_c14n_gzip-def"><a name="L4402"></a><tt class="py-lineno">4402</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="L4403"></a><tt class="py-lineno">4403</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-4530" 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-4538', 'parse', 'link-870');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4539" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4539', '_bytes', 'link-18');">_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="L4400"></a><tt class="py-lineno">4400</tt>  <tt class="py-line">        <tt class="py-keyword">with</tt> <tt id="link-4540" class="py-name"><a title="lxml.tests.common_imports.tmpfile" class="py-name" href="#" onclick="return doclink('link-4540', 'tmpfile', 'link-10');">tmpfile</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-keyword">as</tt> <tt id="link-4541" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4541', 'filename', 'link-4398');">filename</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L4401"></a><tt class="py-lineno">4401</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4542" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-4542', 'write_c14n', 'link-4531');">write_c14n</a></tt><tt class="py-op">(</tt><tt id="link-4543" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4543', 'filename', 'link-4398');">filename</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L4402"></a><tt class="py-lineno">4402</tt>  <tt class="py-line">            <tt id="link-4544" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
-lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4544', 'data', 'link-1150');">data</a></tt> <tt class="py-op">=</tt> <tt id="link-4545" class="py-name"><a title="lxml.tests.common_imports.read_file" class="py-name" href="#" onclick="return doclink('link-4545', 'read_file', 'link-8');">read_file</a></tt><tt class="py-op">(</tt><tt id="link-4546" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4546', 'filename', 'link-4398');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
-<a name="L4403"></a><tt class="py-lineno">4403</tt>  <tt class="py-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-4547" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4547', '_bytes', 'link-18');">_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="L4404"></a><tt class="py-lineno">4404</tt>  <tt class="py-line">                          <tt id="link-4548" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
-lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4548', 'data', 'link-1150');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L4405"></a><tt class="py-lineno">4405</tt>  <tt class="py-line"> </tt>
-<a name="ETreeC14NTestCase.test_c14n_file_gzip"></a><div id="ETreeC14NTestCase.test_c14n_file_gzip-def"><a name="L4406"></a><tt class="py-lineno">4406</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="L4407"></a><tt class="py-lineno">4407</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-4549" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4530', 'parse', 'link-867');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4531" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4531', '_bytes', 'link-18');">_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="L4404"></a><tt class="py-lineno">4404</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="L4405"></a><tt class="py-lineno">4405</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4532" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-4532', 'write_c14n', 'link-4528');">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="L4406"></a><tt class="py-lineno">4406</tt>  <tt class="py-line">        <tt class="py-keyword">with</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 class="py-keyword">as</tt> <tt class="py-name">gzfile</tt><tt class="py-op">:</tt> </tt>
+<a name="L4407"></a><tt class="py-lineno">4407</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-4533" 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-4533', 'read', 'link-4533');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L4408"></a><tt class="py-lineno">4408</tt>  <tt class="py-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-4534" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4534', '_bytes', 'link-18');">_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="L4409"></a><tt class="py-lineno">4409</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L4410"></a><tt class="py-lineno">4410</tt>  <tt class="py-line"> </tt>
+<a name="ETreeC14NTestCase.test_c14n_file"></a><div id="ETreeC14NTestCase.test_c14n_file-def"><a name="L4411"></a><tt class="py-lineno">4411</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="L4412"></a><tt class="py-lineno">4412</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-4535" 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-4549', 'parse', 'link-870');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4550" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4550', '_bytes', 'link-18');">_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="L4408"></a><tt class="py-lineno">4408</tt>  <tt class="py-line">        <tt class="py-keyword">with</tt> <tt id="link-4551" class="py-name"><a title="lxml.tests.common_imports.tmpfile" class="py-name" href="#" onclick="return doclink('link-4551', 'tmpfile', 'link-10');">tmpfile</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-keyword">as</tt> <tt id="link-4552" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4552', 'filename', 'link-4398');">filename</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L4409"></a><tt class="py-lineno">4409</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4553" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-4553', 'write_c14n', 'link-4531');">write_c14n</a></tt><tt class="py-op">(</tt><tt id="link-4554" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4554', 'filename', 'link-4398');">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="L4410"></a><tt class="py-lineno">4410</tt>  <tt class="py-line">            <tt class="py-keyword">with</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-4555" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4555', 'filename', 'link-4398');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> <tt class="py-keyword">as</tt> <tt class="py-name">f</tt><tt class="py-op">:</tt> </tt>
-<a name="L4411"></a><tt class="py-lineno">4411</tt>  <tt class="py-line">                <tt id="link-4556" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
-lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4556', 'data', 'link-1150');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-4557" 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-4557', 'read', 'link-4536');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L4412"></a><tt class="py-lineno">4412</tt>  <tt class="py-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-4558" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4558', '_bytes', 'link-18');">_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="L4413"></a><tt class="py-lineno">4413</tt>  <tt class="py-line">                          <tt id="link-4559" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
-lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4559', 'data', 'link-1150');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L4414"></a><tt class="py-lineno">4414</tt>  <tt class="py-line"> </tt>
-<a name="ETreeC14NTestCase.test_c14n2_file_gzip"></a><div id="ETreeC14NTestCase.test_c14n2_file_gzip-def"><a name="L4415"></a><tt class="py-lineno">4415</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n2_file_gzip-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n2_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_c14n2_file_gzip">test_c14n2_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_c14n2_file_gzip-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n2_file_gzip-expanded"><a name="L4416"></a><tt class="py-lineno">4416</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-4560" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4535', 'parse', 'link-867');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4536" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4536', '_bytes', 'link-18');">_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="L4413"></a><tt class="py-lineno">4413</tt>  <tt class="py-line">        <tt class="py-keyword">with</tt> <tt id="link-4537" class="py-name"><a title="lxml.tests.common_imports.tmpfile" class="py-name" href="#" onclick="return doclink('link-4537', 'tmpfile', 'link-10');">tmpfile</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-keyword">as</tt> <tt id="link-4538" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4538', 'filename', 'link-4395');">filename</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L4414"></a><tt class="py-lineno">4414</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4539" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-4539', 'write_c14n', 'link-4528');">write_c14n</a></tt><tt class="py-op">(</tt><tt id="link-4540" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4540', 'filename', 'link-4395');">filename</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L4415"></a><tt class="py-lineno">4415</tt>  <tt class="py-line">            <tt id="link-4541" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
+lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4541', 'data', 'link-1147');">data</a></tt> <tt class="py-op">=</tt> <tt id="link-4542" class="py-name"><a title="lxml.tests.common_imports.read_file" class="py-name" href="#" onclick="return doclink('link-4542', 'read_file', 'link-8');">read_file</a></tt><tt class="py-op">(</tt><tt id="link-4543" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4543', 'filename', 'link-4395');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
+<a name="L4416"></a><tt class="py-lineno">4416</tt>  <tt class="py-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-4544" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4544', '_bytes', 'link-18');">_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="L4417"></a><tt class="py-lineno">4417</tt>  <tt class="py-line">                          <tt id="link-4545" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
+lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4545', 'data', 'link-1147');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L4418"></a><tt class="py-lineno">4418</tt>  <tt class="py-line"> </tt>
+<a name="ETreeC14NTestCase.test_c14n_file_gzip"></a><div id="ETreeC14NTestCase.test_c14n_file_gzip-def"><a name="L4419"></a><tt class="py-lineno">4419</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="L4420"></a><tt class="py-lineno">4420</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-4546" 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-4560', 'parse', 'link-870');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4561" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4561', '_bytes', 'link-18');">_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="L4417"></a><tt class="py-lineno">4417</tt>  <tt class="py-line">        <tt class="py-keyword">with</tt> <tt id="link-4562" class="py-name"><a title="lxml.tests.common_imports.tmpfile" class="py-name" href="#" onclick="return doclink('link-4562', 'tmpfile', 'link-10');">tmpfile</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-keyword">as</tt> <tt id="link-4563" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4563', 'filename', 'link-4398');">filename</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L4418"></a><tt class="py-lineno">4418</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4564" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-4564', 'write', 'link-4390');">write</a></tt><tt class="py-op">(</tt><tt id="link-4565" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4565', 'filename', 'link-4398');">filename</a></tt><tt class="py-op">,</tt> <tt id="link-4566" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4566', 'method', 'link-4022');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n2'</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="L4419"></a><tt class="py-lineno">4419</tt>  <tt class="py-line">            <tt class="py-keyword">with</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-4567" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4567', 'filename', 'link-4398');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> <tt class="py-keyword">as</tt> <tt class="py-name">f</tt><tt class="py-op">:</tt> </tt>
-<a name="L4420"></a><tt class="py-lineno">4420</tt>  <tt class="py-line">                <tt id="link-4568" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
-lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4568', 'data', 'link-1150');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-4569" 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-4569', 'read', 'link-4536');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L4421"></a><tt class="py-lineno">4421</tt>  <tt class="py-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-4570" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4570', '_bytes', 'link-18');">_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="L4422"></a><tt class="py-lineno">4422</tt>  <tt class="py-line">                          <tt id="link-4571" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
-lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4571', 'data', 'link-1150');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L4423"></a><tt class="py-lineno">4423</tt>  <tt class="py-line"> </tt>
-<a name="ETreeC14NTestCase.test_c14n2_with_text"></a><div id="ETreeC14NTestCase.test_c14n2_with_text-def"><a name="L4424"></a><tt class="py-lineno">4424</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n2_with_text-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n2_with_text');">-</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_c14n2_with_text">test_c14n2_with_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="ETreeC14NTestCase.test_c14n2_with_text-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n2_with_text-expanded"><a name="L4425"></a><tt class="py-lineno">4425</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-4572" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4546', 'parse', 'link-867');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4547" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4547', '_bytes', 'link-18');">_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="L4421"></a><tt class="py-lineno">4421</tt>  <tt class="py-line">        <tt class="py-keyword">with</tt> <tt id="link-4548" class="py-name"><a title="lxml.tests.common_imports.tmpfile" class="py-name" href="#" onclick="return doclink('link-4548', 'tmpfile', 'link-10');">tmpfile</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-keyword">as</tt> <tt id="link-4549" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4549', 'filename', 'link-4395');">filename</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L4422"></a><tt class="py-lineno">4422</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4550" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-4550', 'write_c14n', 'link-4528');">write_c14n</a></tt><tt class="py-op">(</tt><tt id="link-4551" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4551', 'filename', 'link-4395');">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="L4423"></a><tt class="py-lineno">4423</tt>  <tt class="py-line">            <tt class="py-keyword">with</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-4552" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4552', 'filename', 'link-4395');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> <tt class="py-keyword">as</tt> <tt class="py-name">f</tt><tt class="py-op">:</tt> </tt>
+<a name="L4424"></a><tt class="py-lineno">4424</tt>  <tt class="py-line">                <tt id="link-4553" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
+lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4553', 'data', 'link-1147');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-4554" 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-4554', 'read', 'link-4533');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L4425"></a><tt class="py-lineno">4425</tt>  <tt class="py-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-4555" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4555', '_bytes', 'link-18');">_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="L4426"></a><tt class="py-lineno">4426</tt>  <tt class="py-line">                          <tt id="link-4556" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
+lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4556', 'data', 'link-1147');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L4427"></a><tt class="py-lineno">4427</tt>  <tt class="py-line"> </tt>
+<a name="ETreeC14NTestCase.test_c14n2_file_gzip"></a><div id="ETreeC14NTestCase.test_c14n2_file_gzip-def"><a name="L4428"></a><tt class="py-lineno">4428</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n2_file_gzip-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n2_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_c14n2_file_gzip">test_c14n2_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_c14n2_file_gzip-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n2_file_gzip-expanded"><a name="L4429"></a><tt class="py-lineno">4429</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-4557" 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-4572', 'parse', 'link-870');">parse</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L4426"></a><tt class="py-lineno">4426</tt>  <tt class="py-line">            <tt class="py-string">b'&lt;?xml version="1.0"?&gt;    &lt;a&gt; abc \n &lt;b&gt;  btext &lt;/b&gt; btail &lt;c/&gt;    ctail &lt;/a&gt;     '</tt><tt class="py-op">)</tt> </tt>
-<a name="L4427"></a><tt class="py-lineno">4427</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="L4428"></a><tt class="py-lineno">4428</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4573" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-4573', 'write', 'link-4390');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-4574" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4574', 'method', 'link-4022');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n2'</tt><tt class="py-op">)</tt> </tt>
-<a name="L4429"></a><tt class="py-lineno">4429</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="L4430"></a><tt class="py-lineno">4430</tt>  <tt class="py-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'&lt;a&gt; abc \n &lt;b&gt;  btext &lt;/b&gt; btail &lt;c&gt;&lt;/c&gt;    ctail &lt;/a&gt;'</tt><tt class="py-op">,</tt> </tt>
-<a name="L4431"></a><tt class="py-lineno">4431</tt>  <tt class="py-line">                         <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L4432"></a><tt class="py-lineno">4432</tt>  <tt class="py-line"> </tt>
-<a name="L4433"></a><tt class="py-lineno">4433</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="L4434"></a><tt class="py-lineno">4434</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4575" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-4575', 'write', 'link-4390');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-4576" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4576', 'method', 'link-4022');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n2'</tt><tt class="py-op">,</tt> <tt class="py-name">strip_text</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L4435"></a><tt class="py-lineno">4435</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="L4436"></a><tt class="py-lineno">4436</tt>  <tt class="py-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'&lt;a&gt;abc&lt;b&gt;btext&lt;/b&gt;btail&lt;c&gt;&lt;/c&gt;ctail&lt;/a&gt;'</tt><tt class="py-op">,</tt> </tt>
-<a name="L4437"></a><tt class="py-lineno">4437</tt>  <tt class="py-line">                         <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L4438"></a><tt class="py-lineno">4438</tt>  <tt class="py-line"> </tt>
-<a name="ETreeC14NTestCase.test_c14n_with_comments"></a><div id="ETreeC14NTestCase.test_c14n_with_comments-def"><a name="L4439"></a><tt class="py-lineno">4439</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="L4440"></a><tt class="py-lineno">4440</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-4577" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4557', 'parse', 'link-867');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4558" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4558', '_bytes', 'link-18');">_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="L4430"></a><tt class="py-lineno">4430</tt>  <tt class="py-line">        <tt class="py-keyword">with</tt> <tt id="link-4559" class="py-name"><a title="lxml.tests.common_imports.tmpfile" class="py-name" href="#" onclick="return doclink('link-4559', 'tmpfile', 'link-10');">tmpfile</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-keyword">as</tt> <tt id="link-4560" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4560', 'filename', 'link-4395');">filename</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L4431"></a><tt class="py-lineno">4431</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4561" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-4561', 'write', 'link-4387');">write</a></tt><tt class="py-op">(</tt><tt id="link-4562" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4562', 'filename', 'link-4395');">filename</a></tt><tt class="py-op">,</tt> <tt id="link-4563" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4563', 'method', 'link-4019');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n2'</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="L4432"></a><tt class="py-lineno">4432</tt>  <tt class="py-line">            <tt class="py-keyword">with</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-4564" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4564', 'filename', 'link-4395');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> <tt class="py-keyword">as</tt> <tt class="py-name">f</tt><tt class="py-op">:</tt> </tt>
+<a name="L4433"></a><tt class="py-lineno">4433</tt>  <tt class="py-line">                <tt id="link-4565" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
+lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4565', 'data', 'link-1147');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-4566" 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-4566', 'read', 'link-4533');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L4434"></a><tt class="py-lineno">4434</tt>  <tt class="py-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-4567" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4567', '_bytes', 'link-18');">_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="L4435"></a><tt class="py-lineno">4435</tt>  <tt class="py-line">                          <tt id="link-4568" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
+lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4568', 'data', 'link-1147');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L4436"></a><tt class="py-lineno">4436</tt>  <tt class="py-line"> </tt>
+<a name="ETreeC14NTestCase.test_c14n2_with_text"></a><div id="ETreeC14NTestCase.test_c14n2_with_text-def"><a name="L4437"></a><tt class="py-lineno">4437</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n2_with_text-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n2_with_text');">-</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_c14n2_with_text">test_c14n2_with_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="ETreeC14NTestCase.test_c14n2_with_text-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n2_with_text-expanded"><a name="L4438"></a><tt class="py-lineno">4438</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-4569" 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-4577', 'parse', 'link-870');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4578" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4578', '_bytes', 'link-18');">_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="L4441"></a><tt class="py-lineno">4441</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="L4442"></a><tt class="py-lineno">4442</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4579" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-4579', 'write_c14n', 'link-4531');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L4443"></a><tt class="py-lineno">4443</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="L4444"></a><tt class="py-lineno">4444</tt>  <tt class="py-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-4580" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4580', '_bytes', 'link-18');">_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="L4445"></a><tt class="py-lineno">4445</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4569', 'parse', 'link-867');">parse</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L4439"></a><tt class="py-lineno">4439</tt>  <tt class="py-line">            <tt class="py-string">b'&lt;?xml version="1.0"?&gt;    &lt;a&gt; abc \n &lt;b&gt;  btext &lt;/b&gt; btail &lt;c/&gt;    ctail &lt;/a&gt;     '</tt><tt class="py-op">)</tt> </tt>
+<a name="L4440"></a><tt class="py-lineno">4440</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="L4441"></a><tt class="py-lineno">4441</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4570" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-4570', 'write', 'link-4387');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-4571" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4571', 'method', 'link-4019');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n2'</tt><tt class="py-op">)</tt> </tt>
+<a name="L4442"></a><tt class="py-lineno">4442</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="L4443"></a><tt class="py-lineno">4443</tt>  <tt class="py-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'&lt;a&gt; abc \n &lt;b&gt;  btext &lt;/b&gt; btail &lt;c&gt;&lt;/c&gt;    ctail &lt;/a&gt;'</tt><tt class="py-op">,</tt> </tt>
+<a name="L4444"></a><tt class="py-lineno">4444</tt>  <tt class="py-line">                         <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L4445"></a><tt class="py-lineno">4445</tt>  <tt class="py-line"> </tt>
 <a name="L4446"></a><tt class="py-lineno">4446</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="L4447"></a><tt class="py-lineno">4447</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4581" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-4581', 'write_c14n', 'link-4531');">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="L4447"></a><tt class="py-lineno">4447</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4572" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-4572', 'write', 'link-4387');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-4573" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4573', 'method', 'link-4019');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n2'</tt><tt class="py-op">,</tt> <tt class="py-name">strip_text</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
 <a name="L4448"></a><tt class="py-lineno">4448</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="L4449"></a><tt class="py-lineno">4449</tt>  <tt class="py-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-4582" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4582', '_bytes', 'link-18');">_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="L4450"></a><tt class="py-lineno">4450</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L4451"></a><tt class="py-lineno">4451</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="L4452"></a><tt class="py-lineno">4452</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4583" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-4583', 'write_c14n', 'link-4531');">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="L4453"></a><tt class="py-lineno">4453</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="L4454"></a><tt class="py-lineno">4454</tt>  <tt class="py-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-4584" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4584', '_bytes', 'link-18');">_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="L4455"></a><tt class="py-lineno">4455</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L4456"></a><tt class="py-lineno">4456</tt>  <tt class="py-line"> </tt>
-<a name="ETreeC14NTestCase.test_c14n2_with_comments"></a><div id="ETreeC14NTestCase.test_c14n2_with_comments-def"><a name="L4457"></a><tt class="py-lineno">4457</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n2_with_comments-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n2_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_c14n2_with_comments">test_c14n2_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_c14n2_with_comments-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n2_with_comments-expanded"><a name="L4458"></a><tt class="py-lineno">4458</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-4585" class="py-name"><a title="lxml.etree._ElementTree.parse
+<a name="L4449"></a><tt class="py-lineno">4449</tt>  <tt class="py-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'&lt;a&gt;abc&lt;b&gt;btext&lt;/b&gt;btail&lt;c&gt;&lt;/c&gt;ctail&lt;/a&gt;'</tt><tt class="py-op">,</tt> </tt>
+<a name="L4450"></a><tt class="py-lineno">4450</tt>  <tt class="py-line">                         <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L4451"></a><tt class="py-lineno">4451</tt>  <tt class="py-line"> </tt>
+<a name="ETreeC14NTestCase.test_c14n_with_comments"></a><div id="ETreeC14NTestCase.test_c14n_with_comments-def"><a name="L4452"></a><tt class="py-lineno">4452</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="L4453"></a><tt class="py-lineno">4453</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-4574" 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-4585', 'parse', 'link-870');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4586" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4586', '_bytes', 'link-18');">_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>
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4574', 'parse', 'link-867');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4575" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4575', '_bytes', 'link-18');">_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="L4454"></a><tt class="py-lineno">4454</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="L4455"></a><tt class="py-lineno">4455</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4576" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-4576', 'write_c14n', 'link-4528');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L4456"></a><tt class="py-lineno">4456</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="L4457"></a><tt class="py-lineno">4457</tt>  <tt class="py-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-4577" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4577', '_bytes', 'link-18');">_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="L4458"></a><tt class="py-lineno">4458</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
 <a name="L4459"></a><tt class="py-lineno">4459</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="L4460"></a><tt class="py-lineno">4460</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4587" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-4587', 'write', 'link-4390');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-4588" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4588', 'method', 'link-4022');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n2'</tt><tt class="py-op">)</tt> </tt>
+<a name="L4460"></a><tt class="py-lineno">4460</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4578" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-4578', 'write_c14n', 'link-4528');">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="L4461"></a><tt class="py-lineno">4461</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="L4462"></a><tt class="py-lineno">4462</tt>  <tt class="py-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-4589" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4589', '_bytes', 'link-18');">_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="L4462"></a><tt class="py-lineno">4462</tt>  <tt class="py-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-4579" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4579', '_bytes', 'link-18');">_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="L4463"></a><tt class="py-lineno">4463</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
 <a name="L4464"></a><tt class="py-lineno">4464</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="L4465"></a><tt class="py-lineno">4465</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4590" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-4590', 'write', 'link-4390');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-4591" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4591', 'method', 'link-4022');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n2'</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="L4465"></a><tt class="py-lineno">4465</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4580" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-4580', 'write_c14n', 'link-4528');">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="L4466"></a><tt class="py-lineno">4466</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="L4467"></a><tt class="py-lineno">4467</tt>  <tt class="py-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-4592" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4592', '_bytes', 'link-18');">_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="L4467"></a><tt class="py-lineno">4467</tt>  <tt class="py-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-4581" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4581', '_bytes', 'link-18');">_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="L4468"></a><tt class="py-lineno">4468</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L4469"></a><tt class="py-lineno">4469</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="L4470"></a><tt class="py-lineno">4470</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4593" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-4593', 'write', 'link-4390');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-4594" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4594', 'method', 'link-4022');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n2'</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="L4471"></a><tt class="py-lineno">4471</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="L4472"></a><tt class="py-lineno">4472</tt>  <tt class="py-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-4595" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4595', '_bytes', 'link-18');">_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="L4473"></a><tt class="py-lineno">4473</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L4474"></a><tt class="py-lineno">4474</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="L4475"></a><tt class="py-lineno">4475</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="L4476"></a><tt class="py-lineno">4476</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-4596" class="py-name"><a title="lxml.etree._ElementTree.parse
+</div><a name="L4469"></a><tt class="py-lineno">4469</tt>  <tt class="py-line"> </tt>
+<a name="ETreeC14NTestCase.test_c14n2_with_comments"></a><div id="ETreeC14NTestCase.test_c14n2_with_comments-def"><a name="L4470"></a><tt class="py-lineno">4470</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n2_with_comments-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n2_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_c14n2_with_comments">test_c14n2_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_c14n2_with_comments-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n2_with_comments-expanded"><a name="L4471"></a><tt class="py-lineno">4471</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-4582" 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-4596', 'parse', 'link-870');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4597" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4597', '_bytes', 'link-18');">_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="L4477"></a><tt class="py-lineno">4477</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-4598" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4582', 'parse', 'link-867');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4583" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4583', '_bytes', 'link-18');">_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="L4472"></a><tt class="py-lineno">4472</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="L4473"></a><tt class="py-lineno">4473</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4584" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-4584', 'write', 'link-4387');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-4585" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4585', 'method', 'link-4019');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n2'</tt><tt class="py-op">)</tt> </tt>
+<a name="L4474"></a><tt class="py-lineno">4474</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="L4475"></a><tt class="py-lineno">4475</tt>  <tt class="py-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-4586" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4586', '_bytes', 'link-18');">_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="L4476"></a><tt class="py-lineno">4476</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L4477"></a><tt class="py-lineno">4477</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="L4478"></a><tt class="py-lineno">4478</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4587" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-4587', 'write', 'link-4387');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-4588" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4588', 'method', 'link-4019');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n2'</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="L4479"></a><tt class="py-lineno">4479</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="L4480"></a><tt class="py-lineno">4480</tt>  <tt class="py-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-4589" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4589', '_bytes', 'link-18');">_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="L4481"></a><tt class="py-lineno">4481</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L4482"></a><tt class="py-lineno">4482</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="L4483"></a><tt class="py-lineno">4483</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4590" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-4590', 'write', 'link-4387');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-4591" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4591', 'method', 'link-4019');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n2'</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="L4484"></a><tt class="py-lineno">4484</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="L4485"></a><tt class="py-lineno">4485</tt>  <tt class="py-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-4592" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4592', '_bytes', 'link-18');">_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="L4486"></a><tt class="py-lineno">4486</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L4487"></a><tt class="py-lineno">4487</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="L4488"></a><tt class="py-lineno">4488</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="L4489"></a><tt class="py-lineno">4489</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-4593" 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-4593', 'parse', 'link-867');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4594" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4594', '_bytes', 'link-18');">_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="L4490"></a><tt class="py-lineno">4490</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-4595" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -14281,11 +14277,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4598', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4599" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4599', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-4600" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4600', 'method', 'link-4022');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">)</tt> </tt>
-<a name="L4478"></a><tt class="py-lineno">4478</tt>  <tt class="py-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-4601" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4601', '_bytes', 'link-18');">_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="L4479"></a><tt class="py-lineno">4479</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L4480"></a><tt class="py-lineno">4480</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-4602" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4595', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4596" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4596', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-4597" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4597', 'method', 'link-4019');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">)</tt> </tt>
+<a name="L4491"></a><tt class="py-lineno">4491</tt>  <tt class="py-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-4598" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4598', '_bytes', 'link-18');">_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="L4492"></a><tt class="py-lineno">4492</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L4493"></a><tt class="py-lineno">4493</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-4599" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -14293,11 +14289,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4602', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4603" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4603', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-4604" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4604', 'method', 'link-4022');">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="L4481"></a><tt class="py-lineno">4481</tt>  <tt class="py-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-4605" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4605', '_bytes', 'link-18');">_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="L4482"></a><tt class="py-lineno">4482</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L4483"></a><tt class="py-lineno">4483</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-4606" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4599', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4600" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4600', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-4601" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4601', 'method', 'link-4019');">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="L4494"></a><tt class="py-lineno">4494</tt>  <tt class="py-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-4602" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4602', '_bytes', 'link-18');">_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="L4495"></a><tt class="py-lineno">4495</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L4496"></a><tt class="py-lineno">4496</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-4603" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -14305,20 +14301,20 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4606', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4607" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4607', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-4608" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4608', 'method', 'link-4022');">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="L4484"></a><tt class="py-lineno">4484</tt>  <tt class="py-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-4609" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4609', '_bytes', 'link-18');">_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="L4485"></a><tt class="py-lineno">4485</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L4486"></a><tt class="py-lineno">4486</tt>  <tt class="py-line"> </tt>
-<a name="ETreeC14NTestCase.test_c14n2_tostring_with_comments"></a><div id="ETreeC14NTestCase.test_c14n2_tostring_with_comments-def"><a name="L4487"></a><tt class="py-lineno">4487</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n2_tostring_with_comments-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n2_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_c14n2_tostring_with_comments">test_c14n2_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_c14n2_tostring_with_comments-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n2_tostring_with_comments-expanded"><a name="L4488"></a><tt class="py-lineno">4488</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-4610" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4603', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4604" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4604', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-4605" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4605', 'method', 'link-4019');">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="L4497"></a><tt class="py-lineno">4497</tt>  <tt class="py-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-4606" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4606', '_bytes', 'link-18');">_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="L4498"></a><tt class="py-lineno">4498</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L4499"></a><tt class="py-lineno">4499</tt>  <tt class="py-line"> </tt>
+<a name="ETreeC14NTestCase.test_c14n2_tostring_with_comments"></a><div id="ETreeC14NTestCase.test_c14n2_tostring_with_comments-def"><a name="L4500"></a><tt class="py-lineno">4500</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n2_tostring_with_comments-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n2_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_c14n2_tostring_with_comments">test_c14n2_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_c14n2_tostring_with_comments-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n2_tostring_with_comments-expanded"><a name="L4501"></a><tt class="py-lineno">4501</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-4607" 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-4610', 'parse', 'link-870');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">b'&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>
-<a name="L4489"></a><tt class="py-lineno">4489</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-4611" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4607', 'parse', 'link-867');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">b'&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>
+<a name="L4502"></a><tt class="py-lineno">4502</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-4608" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -14326,11 +14322,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4611', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4612" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4612', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-4613" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4613', 'method', 'link-4022');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n2'</tt><tt class="py-op">)</tt> </tt>
-<a name="L4490"></a><tt class="py-lineno">4490</tt>  <tt class="py-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'&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>
-<a name="L4491"></a><tt class="py-lineno">4491</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L4492"></a><tt class="py-lineno">4492</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-4614" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4608', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4609" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4609', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-4610" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4610', 'method', 'link-4019');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n2'</tt><tt class="py-op">)</tt> </tt>
+<a name="L4503"></a><tt class="py-lineno">4503</tt>  <tt class="py-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'&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>
+<a name="L4504"></a><tt class="py-lineno">4504</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L4505"></a><tt class="py-lineno">4505</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-4611" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -14338,11 +14334,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4614', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4615" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4615', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-4616" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4616', 'method', 'link-4022');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n2'</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="L4493"></a><tt class="py-lineno">4493</tt>  <tt class="py-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'&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>
-<a name="L4494"></a><tt class="py-lineno">4494</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L4495"></a><tt class="py-lineno">4495</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-4617" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4611', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4612" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4612', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-4613" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4613', 'method', 'link-4019');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n2'</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="L4506"></a><tt class="py-lineno">4506</tt>  <tt class="py-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'&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>
+<a name="L4507"></a><tt class="py-lineno">4507</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L4508"></a><tt class="py-lineno">4508</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-4614" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -14350,20 +14346,20 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4617', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4618" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4618', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-4619" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4619', 'method', 'link-4022');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n2'</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="L4496"></a><tt class="py-lineno">4496</tt>  <tt class="py-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'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">,</tt> </tt>
-<a name="L4497"></a><tt class="py-lineno">4497</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L4498"></a><tt class="py-lineno">4498</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="L4499"></a><tt class="py-lineno">4499</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="L4500"></a><tt class="py-lineno">4500</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-4620" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4614', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4615" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4615', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-4616" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4616', 'method', 'link-4019');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n2'</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="L4509"></a><tt class="py-lineno">4509</tt>  <tt class="py-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'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">,</tt> </tt>
+<a name="L4510"></a><tt class="py-lineno">4510</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L4511"></a><tt class="py-lineno">4511</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="L4512"></a><tt class="py-lineno">4512</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="L4513"></a><tt class="py-lineno">4513</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-4617" 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-4620', 'parse', 'link-870');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4621" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4621', '_bytes', 'link-18');">_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="L4501"></a><tt class="py-lineno">4501</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-4622" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4617', 'parse', 'link-867');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4618" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4618', '_bytes', 'link-18');">_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="L4514"></a><tt class="py-lineno">4514</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-4619" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -14371,11 +14367,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4622', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4623" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4623', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4624" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-4624', 'getroot', 'link-805');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-4625" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4625', 'method', 'link-4022');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">)</tt> </tt>
-<a name="L4502"></a><tt class="py-lineno">4502</tt>  <tt class="py-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-4626" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4626', '_bytes', 'link-18');">_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="L4503"></a><tt class="py-lineno">4503</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L4504"></a><tt class="py-lineno">4504</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-4627" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4619', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4620" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4620', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4621" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-4621', 'getroot', 'link-802');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-4622" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4622', 'method', 'link-4019');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">)</tt> </tt>
+<a name="L4515"></a><tt class="py-lineno">4515</tt>  <tt class="py-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-4623" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4623', '_bytes', 'link-18');">_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="L4516"></a><tt class="py-lineno">4516</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L4517"></a><tt class="py-lineno">4517</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-4624" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -14383,11 +14379,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4627', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4628" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4628', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4629" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-4629', 'getroot', 'link-805');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-4630" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4630', 'method', 'link-4022');">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="L4505"></a><tt class="py-lineno">4505</tt>  <tt class="py-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-4631" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4631', '_bytes', 'link-18');">_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="L4506"></a><tt class="py-lineno">4506</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L4507"></a><tt class="py-lineno">4507</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-4632" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4624', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4625" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4625', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4626" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-4626', 'getroot', 'link-802');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-4627" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4627', 'method', 'link-4019');">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="L4518"></a><tt class="py-lineno">4518</tt>  <tt class="py-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-4628" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4628', '_bytes', 'link-18');">_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="L4519"></a><tt class="py-lineno">4519</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L4520"></a><tt class="py-lineno">4520</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-4629" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -14395,52 +14391,52 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4632', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4633" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4633', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4634" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-4634', 'getroot', 'link-805');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-4635" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4635', 'method', 'link-4022');">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="L4508"></a><tt class="py-lineno">4508</tt>  <tt class="py-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-4636" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4636', '_bytes', 'link-18');">_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="L4509"></a><tt class="py-lineno">4509</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L4510"></a><tt class="py-lineno">4510</tt>  <tt class="py-line"> </tt>
-<a name="ETreeC14NTestCase.test_c14n_exclusive"></a><div id="ETreeC14NTestCase.test_c14n_exclusive-def"><a name="L4511"></a><tt class="py-lineno">4511</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="L4512"></a><tt class="py-lineno">4512</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-4637" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4629', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4630" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4630', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4631" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-4631', 'getroot', 'link-802');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-4632" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4632', 'method', 'link-4019');">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="L4521"></a><tt class="py-lineno">4521</tt>  <tt class="py-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-4633" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4633', '_bytes', 'link-18');">_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="L4522"></a><tt class="py-lineno">4522</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L4523"></a><tt class="py-lineno">4523</tt>  <tt class="py-line"> </tt>
+<a name="ETreeC14NTestCase.test_c14n_exclusive"></a><div id="ETreeC14NTestCase.test_c14n_exclusive-def"><a name="L4524"></a><tt class="py-lineno">4524</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="L4525"></a><tt class="py-lineno">4525</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-4634" 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-4637', 'parse', 'link-870');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4638" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4638', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L4513"></a><tt class="py-lineno">4513</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="L4514"></a><tt class="py-lineno">4514</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="L4515"></a><tt class="py-lineno">4515</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4639" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-4639', 'write_c14n', 'link-4531');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L4516"></a><tt class="py-lineno">4516</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="L4517"></a><tt class="py-lineno">4517</tt>  <tt class="py-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-4640" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4640', '_bytes', 'link-18');">_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="L4518"></a><tt class="py-lineno">4518</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L4519"></a><tt class="py-lineno">4519</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="L4520"></a><tt class="py-lineno">4520</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4641" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-4641', 'write_c14n', 'link-4531');">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="L4521"></a><tt class="py-lineno">4521</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="L4522"></a><tt class="py-lineno">4522</tt>  <tt class="py-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-4642" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4642', '_bytes', 'link-18');">_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="L4523"></a><tt class="py-lineno">4523</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L4524"></a><tt class="py-lineno">4524</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="L4525"></a><tt class="py-lineno">4525</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4643" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-4643', 'write_c14n', 'link-4531');">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="L4526"></a><tt class="py-lineno">4526</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="L4527"></a><tt class="py-lineno">4527</tt>  <tt class="py-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-4644" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4644', '_bytes', 'link-18');">_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="L4528"></a><tt class="py-lineno">4528</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L4529"></a><tt class="py-lineno">4529</tt>  <tt class="py-line"> </tt>
-<a name="L4530"></a><tt class="py-lineno">4530</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="L4531"></a><tt class="py-lineno">4531</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4645" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-4645', 'write_c14n', 'link-4531');">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="L4532"></a><tt class="py-lineno">4532</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="L4533"></a><tt class="py-lineno">4533</tt>  <tt class="py-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-4646" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4646', '_bytes', 'link-18');">_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="L4534"></a><tt class="py-lineno">4534</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L4535"></a><tt class="py-lineno">4535</tt>  <tt class="py-line"> </tt>
-<a name="ETreeC14NTestCase.test_c14n_tostring_exclusive"></a><div id="ETreeC14NTestCase.test_c14n_tostring_exclusive-def"><a name="L4536"></a><tt class="py-lineno">4536</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="L4537"></a><tt class="py-lineno">4537</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-4647" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4634', 'parse', 'link-867');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4635" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4635', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L4526"></a><tt class="py-lineno">4526</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="L4527"></a><tt class="py-lineno">4527</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="L4528"></a><tt class="py-lineno">4528</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4636" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-4636', 'write_c14n', 'link-4528');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L4529"></a><tt class="py-lineno">4529</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="L4530"></a><tt class="py-lineno">4530</tt>  <tt class="py-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-4637" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4637', '_bytes', 'link-18');">_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="L4531"></a><tt class="py-lineno">4531</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L4532"></a><tt class="py-lineno">4532</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="L4533"></a><tt class="py-lineno">4533</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4638" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-4638', 'write_c14n', 'link-4528');">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="L4534"></a><tt class="py-lineno">4534</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="L4535"></a><tt class="py-lineno">4535</tt>  <tt class="py-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-4639" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4639', '_bytes', 'link-18');">_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="L4536"></a><tt class="py-lineno">4536</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L4537"></a><tt class="py-lineno">4537</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="L4538"></a><tt class="py-lineno">4538</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4640" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-4640', 'write_c14n', 'link-4528');">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="L4539"></a><tt class="py-lineno">4539</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="L4540"></a><tt class="py-lineno">4540</tt>  <tt class="py-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-4641" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4641', '_bytes', 'link-18');">_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="L4541"></a><tt class="py-lineno">4541</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L4542"></a><tt class="py-lineno">4542</tt>  <tt class="py-line"> </tt>
+<a name="L4543"></a><tt class="py-lineno">4543</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="L4544"></a><tt class="py-lineno">4544</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4642" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-4642', 'write_c14n', 'link-4528');">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="L4545"></a><tt class="py-lineno">4545</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="L4546"></a><tt class="py-lineno">4546</tt>  <tt class="py-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-4643" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4643', '_bytes', 'link-18');">_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="L4547"></a><tt class="py-lineno">4547</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L4548"></a><tt class="py-lineno">4548</tt>  <tt class="py-line"> </tt>
+<a name="ETreeC14NTestCase.test_c14n_tostring_exclusive"></a><div id="ETreeC14NTestCase.test_c14n_tostring_exclusive-def"><a name="L4549"></a><tt class="py-lineno">4549</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="L4550"></a><tt class="py-lineno">4550</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-4644" 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-4647', 'parse', 'link-870');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4648" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4648', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L4538"></a><tt class="py-lineno">4538</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="L4539"></a><tt class="py-lineno">4539</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-4649" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4644', 'parse', 'link-867');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4645" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4645', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L4551"></a><tt class="py-lineno">4551</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="L4552"></a><tt class="py-lineno">4552</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-4646" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -14448,11 +14444,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4649', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4650" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4650', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-4651" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4651', 'method', 'link-4022');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">)</tt> </tt>
-<a name="L4540"></a><tt class="py-lineno">4540</tt>  <tt class="py-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-4652" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4652', '_bytes', 'link-18');">_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="L4541"></a><tt class="py-lineno">4541</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L4542"></a><tt class="py-lineno">4542</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-4653" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4646', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4647" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4647', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-4648" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4648', 'method', 'link-4019');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">)</tt> </tt>
+<a name="L4553"></a><tt class="py-lineno">4553</tt>  <tt class="py-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-4649" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4649', '_bytes', 'link-18');">_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="L4554"></a><tt class="py-lineno">4554</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L4555"></a><tt class="py-lineno">4555</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-4650" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -14460,11 +14456,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4653', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4654" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4654', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-4655" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4655', 'method', 'link-4022');">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="L4543"></a><tt class="py-lineno">4543</tt>  <tt class="py-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-4656" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4656', '_bytes', 'link-18');">_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="L4544"></a><tt class="py-lineno">4544</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L4545"></a><tt class="py-lineno">4545</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-4657" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4650', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4651" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4651', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-4652" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4652', 'method', 'link-4019');">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="L4556"></a><tt class="py-lineno">4556</tt>  <tt class="py-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-4653" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4653', '_bytes', 'link-18');">_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="L4557"></a><tt class="py-lineno">4557</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L4558"></a><tt class="py-lineno">4558</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-4654" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -14472,12 +14468,12 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4657', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4658" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4658', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-4659" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4659', 'method', 'link-4022');">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="L4546"></a><tt class="py-lineno">4546</tt>  <tt class="py-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-4660" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4660', '_bytes', 'link-18');">_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="L4547"></a><tt class="py-lineno">4547</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L4548"></a><tt class="py-lineno">4548</tt>  <tt class="py-line"> </tt>
-<a name="L4549"></a><tt class="py-lineno">4549</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-4661" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4654', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4655" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4655', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-4656" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4656', 'method', 'link-4019');">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="L4559"></a><tt class="py-lineno">4559</tt>  <tt class="py-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-4657" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4657', '_bytes', 'link-18');">_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="L4560"></a><tt class="py-lineno">4560</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L4561"></a><tt class="py-lineno">4561</tt>  <tt class="py-line"> </tt>
+<a name="L4562"></a><tt class="py-lineno">4562</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-4658" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -14485,21 +14481,21 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4661', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4662" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4662', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-4663" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4663', 'method', 'link-4022');">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="L4550"></a><tt class="py-lineno">4550</tt>  <tt class="py-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-4664" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4664', '_bytes', 'link-18');">_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="L4551"></a><tt class="py-lineno">4551</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L4552"></a><tt class="py-lineno">4552</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="L4553"></a><tt class="py-lineno">4553</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="L4554"></a><tt class="py-lineno">4554</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-4665" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4658', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4659" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4659', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-4660" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4660', 'method', 'link-4019');">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="L4563"></a><tt class="py-lineno">4563</tt>  <tt class="py-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-4661" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4661', '_bytes', 'link-18');">_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="L4564"></a><tt class="py-lineno">4564</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L4565"></a><tt class="py-lineno">4565</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="L4566"></a><tt class="py-lineno">4566</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="L4567"></a><tt class="py-lineno">4567</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-4662" 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-4665', 'parse', 'link-870');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4666" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4666', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L4555"></a><tt class="py-lineno">4555</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="L4556"></a><tt class="py-lineno">4556</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-4667" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4662', 'parse', 'link-867');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4663" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4663', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L4568"></a><tt class="py-lineno">4568</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="L4569"></a><tt class="py-lineno">4569</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-4664" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -14507,11 +14503,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4667', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4668" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4668', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4669" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-4669', 'getroot', 'link-805');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-4670" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4670', 'method', 'link-4022');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">)</tt> </tt>
-<a name="L4557"></a><tt class="py-lineno">4557</tt>  <tt class="py-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-4671" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4671', '_bytes', 'link-18');">_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="L4558"></a><tt class="py-lineno">4558</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L4559"></a><tt class="py-lineno">4559</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-4672" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4664', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4665" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4665', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4666" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-4666', 'getroot', 'link-802');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-4667" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4667', 'method', 'link-4019');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">)</tt> </tt>
+<a name="L4570"></a><tt class="py-lineno">4570</tt>  <tt class="py-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-4668" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4668', '_bytes', 'link-18');">_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="L4571"></a><tt class="py-lineno">4571</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L4572"></a><tt class="py-lineno">4572</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-4669" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -14519,11 +14515,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4672', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4673" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4673', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4674" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-4674', 'getroot', 'link-805');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-4675" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4675', 'method', 'link-4022');">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="L4560"></a><tt class="py-lineno">4560</tt>  <tt class="py-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-4676" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4676', '_bytes', 'link-18');">_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="L4561"></a><tt class="py-lineno">4561</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L4562"></a><tt class="py-lineno">4562</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-4677" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4669', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4670" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4670', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4671" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-4671', 'getroot', 'link-802');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-4672" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4672', 'method', 'link-4019');">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="L4573"></a><tt class="py-lineno">4573</tt>  <tt class="py-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-4673" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4673', '_bytes', 'link-18');">_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="L4574"></a><tt class="py-lineno">4574</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L4575"></a><tt class="py-lineno">4575</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-4674" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -14531,12 +14527,12 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4677', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4678" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4678', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4679" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-4679', 'getroot', 'link-805');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-4680" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4680', 'method', 'link-4022');">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="L4563"></a><tt class="py-lineno">4563</tt>  <tt class="py-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-4681" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4681', '_bytes', 'link-18');">_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="L4564"></a><tt class="py-lineno">4564</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L4565"></a><tt class="py-lineno">4565</tt>  <tt class="py-line"> </tt>
-<a name="L4566"></a><tt class="py-lineno">4566</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-4682" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4674', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4675" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4675', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4676" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-4676', 'getroot', 'link-802');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-4677" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4677', 'method', 'link-4019');">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="L4576"></a><tt class="py-lineno">4576</tt>  <tt class="py-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-4678" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4678', '_bytes', 'link-18');">_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="L4577"></a><tt class="py-lineno">4577</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L4578"></a><tt class="py-lineno">4578</tt>  <tt class="py-line"> </tt>
+<a name="L4579"></a><tt class="py-lineno">4579</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-4679" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -14544,11 +14540,11 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4682', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4683" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4683', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4684" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-4684', 'getroot', 'link-805');">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-4685" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4685', 'method', 'link-4022');">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="L4567"></a><tt class="py-lineno">4567</tt>  <tt class="py-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-4686" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4686', '_bytes', 'link-18');">_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="L4568"></a><tt class="py-lineno">4568</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L4569"></a><tt class="py-lineno">4569</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-4687" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4679', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4680" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4680', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4681" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-4681', 'getroot', 'link-802');">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-4682" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4682', 'method', 'link-4019');">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="L4580"></a><tt class="py-lineno">4580</tt>  <tt class="py-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-4683" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4683', '_bytes', 'link-18');">_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="L4581"></a><tt class="py-lineno">4581</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L4582"></a><tt class="py-lineno">4582</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-4684" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -14556,12 +14552,12 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4687', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4688" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4688', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4689" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-4689', 'getroot', 'link-805');">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-4690" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4690', 'method', 'link-4022');">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="L4570"></a><tt class="py-lineno">4570</tt>  <tt class="py-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-4691" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4691', '_bytes', 'link-18');">_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="L4571"></a><tt class="py-lineno">4571</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L4572"></a><tt class="py-lineno">4572</tt>  <tt class="py-line"> </tt>
-<a name="L4573"></a><tt class="py-lineno">4573</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-4692" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4684', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4685" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4685', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4686" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-4686', 'getroot', 'link-802');">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-4687" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4687', 'method', 'link-4019');">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="L4583"></a><tt class="py-lineno">4583</tt>  <tt class="py-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-4688" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4688', '_bytes', 'link-18');">_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="L4584"></a><tt class="py-lineno">4584</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L4585"></a><tt class="py-lineno">4585</tt>  <tt class="py-line"> </tt>
+<a name="L4586"></a><tt class="py-lineno">4586</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-4689" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -14569,23 +14565,23 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4692', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4693" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4693', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4694" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-4694', 'getroot', 'link-805');">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-4695" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4695', 'method', 'link-4022');">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="L4574"></a><tt class="py-lineno">4574</tt>  <tt class="py-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-4696" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4696', '_bytes', 'link-18');">_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="L4575"></a><tt class="py-lineno">4575</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L4576"></a><tt class="py-lineno">4576</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="L4577"></a><tt class="py-lineno">4577</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="L4578"></a><tt class="py-lineno">4578</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="L4579"></a><tt class="py-lineno">4579</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-4697" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4689', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4690" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4690', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4691" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-4691', 'getroot', 'link-802');">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-4692" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4692', 'method', 'link-4019');">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="L4587"></a><tt class="py-lineno">4587</tt>  <tt class="py-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-4693" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4693', '_bytes', 'link-18');">_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="L4588"></a><tt class="py-lineno">4588</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L4589"></a><tt class="py-lineno">4589</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="L4590"></a><tt class="py-lineno">4590</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="L4591"></a><tt class="py-lineno">4591</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="L4592"></a><tt class="py-lineno">4592</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-4694" 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-4697', 'parse', 'link-870');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4698" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4698', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L4580"></a><tt class="py-lineno">4580</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="L4581"></a><tt class="py-lineno">4581</tt>  <tt class="py-line"> </tt>
-<a name="L4582"></a><tt class="py-lineno">4582</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-4699" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4694', 'parse', 'link-867');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4695" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4695', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L4593"></a><tt class="py-lineno">4593</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="L4594"></a><tt class="py-lineno">4594</tt>  <tt class="py-line"> </tt>
+<a name="L4595"></a><tt class="py-lineno">4595</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-4696" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -14593,158 +14589,158 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4699', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4700" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4700', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-4701" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4701', 'method', 'link-4022');">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="L4583"></a><tt class="py-lineno">4583</tt>  <tt class="py-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-4702" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4702', '_bytes', 'link-18');">_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="L4584"></a><tt class="py-lineno">4584</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L4585"></a><tt class="py-lineno">4585</tt>  <tt class="py-line"> </tt>
-<a name="L4586"></a><tt class="py-lineno">4586</tt>  <tt class="py-line"> </tt>
-<a name="ETreeWriteTestCase"></a><div id="ETreeWriteTestCase-def"><a name="L4587"></a><tt class="py-lineno">4587</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="L4588"></a><tt class="py-lineno">4588</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="L4589"></a><tt class="py-lineno">4589</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-4703" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4696', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4697" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4697', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-4698" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-4698', 'method', 'link-4019');">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="L4596"></a><tt class="py-lineno">4596</tt>  <tt class="py-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-4699" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4699', '_bytes', 'link-18');">_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="L4597"></a><tt class="py-lineno">4597</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L4598"></a><tt class="py-lineno">4598</tt>  <tt class="py-line"> </tt>
+<a name="L4599"></a><tt class="py-lineno">4599</tt>  <tt class="py-line"> </tt>
+<a name="ETreeWriteTestCase"></a><div id="ETreeWriteTestCase-def"><a name="L4600"></a><tt class="py-lineno">4600</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="L4601"></a><tt class="py-lineno">4601</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="L4602"></a><tt class="py-lineno">4602</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-4700" 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-4703', 'parse', 'link-870');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4704" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4704', '_bytes', 'link-18');">_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="L4590"></a><tt class="py-lineno">4590</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="L4591"></a><tt class="py-lineno">4591</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4705" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-4705', 'write', 'link-4390');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L4592"></a><tt class="py-lineno">4592</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="L4593"></a><tt class="py-lineno">4593</tt>  <tt class="py-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-4706" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4706', '_bytes', 'link-18');">_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="L4594"></a><tt class="py-lineno">4594</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L4595"></a><tt class="py-lineno">4595</tt>  <tt class="py-line"> </tt>
-<a name="ETreeWriteTestCase.test_write_doctype"></a><div id="ETreeWriteTestCase.test_write_doctype-def"><a name="L4596"></a><tt class="py-lineno">4596</tt> <a class="py-toggle" href="#" id="ETreeWriteTestCase.test_write_doctype-toggle" onclick="return toggle('ETreeWriteTestCase.test_write_doctype');">-</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_doctype">test_write_doctype</a><tt 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_doctype-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeWriteTestCase.test_write_doctype-expanded"><a name="L4597"></a><tt class="py-lineno">4597</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-4707" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4700', 'parse', 'link-867');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4701" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4701', '_bytes', 'link-18');">_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="L4603"></a><tt class="py-lineno">4603</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="L4604"></a><tt class="py-lineno">4604</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4702" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-4702', 'write', 'link-4387');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L4605"></a><tt class="py-lineno">4605</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="L4606"></a><tt class="py-lineno">4606</tt>  <tt class="py-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-4703" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4703', '_bytes', 'link-18');">_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="L4607"></a><tt class="py-lineno">4607</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L4608"></a><tt class="py-lineno">4608</tt>  <tt class="py-line"> </tt>
+<a name="ETreeWriteTestCase.test_write_doctype"></a><div id="ETreeWriteTestCase.test_write_doctype-def"><a name="L4609"></a><tt class="py-lineno">4609</tt> <a class="py-toggle" href="#" id="ETreeWriteTestCase.test_write_doctype-toggle" onclick="return toggle('ETreeWriteTestCase.test_write_doctype');">-</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_doctype">test_write_doctype</a><tt 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_doctype-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeWriteTestCase.test_write_doctype-expanded"><a name="L4610"></a><tt class="py-lineno">4610</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-4704" 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-4707', 'parse', 'link-870');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4708" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4708', '_bytes', 'link-18');">_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="L4598"></a><tt class="py-lineno">4598</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="L4599"></a><tt class="py-lineno">4599</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4709" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-4709', 'write', 'link-4390');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-4710" class="py-name"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-4710', 'doctype', 'link-3729');">doctype</a></tt><tt class="py-op">=</tt><tt class="py-string">'HUHU'</tt><tt class="py-op">)</tt> </tt>
-<a name="L4600"></a><tt class="py-lineno">4600</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="L4601"></a><tt class="py-lineno">4601</tt>  <tt class="py-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-4711" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4711', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'HUHU\n&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L4602"></a><tt class="py-lineno">4602</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L4603"></a><tt class="py-lineno">4603</tt>  <tt class="py-line"> </tt>
-<a name="ETreeWriteTestCase.test_write_gzip"></a><div id="ETreeWriteTestCase.test_write_gzip-def"><a name="L4604"></a><tt class="py-lineno">4604</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="L4605"></a><tt class="py-lineno">4605</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-4712" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4704', 'parse', 'link-867');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4705" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4705', '_bytes', 'link-18');">_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="L4611"></a><tt class="py-lineno">4611</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="L4612"></a><tt class="py-lineno">4612</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4706" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-4706', 'write', 'link-4387');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-4707" class="py-name"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-4707', 'doctype', 'link-3726');">doctype</a></tt><tt class="py-op">=</tt><tt class="py-string">'HUHU'</tt><tt class="py-op">)</tt> </tt>
+<a name="L4613"></a><tt class="py-lineno">4613</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="L4614"></a><tt class="py-lineno">4614</tt>  <tt class="py-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-4708" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4708', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'HUHU\n&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L4615"></a><tt class="py-lineno">4615</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L4616"></a><tt class="py-lineno">4616</tt>  <tt class="py-line"> </tt>
+<a name="ETreeWriteTestCase.test_write_gzip"></a><div id="ETreeWriteTestCase.test_write_gzip-def"><a name="L4617"></a><tt class="py-lineno">4617</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="L4618"></a><tt class="py-lineno">4618</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-4709" 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-4712', 'parse', 'link-870');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4713" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4713', '_bytes', 'link-18');">_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="L4606"></a><tt class="py-lineno">4606</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="L4607"></a><tt class="py-lineno">4607</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4714" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-4714', 'write', 'link-4390');">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="L4608"></a><tt class="py-lineno">4608</tt>  <tt class="py-line">        <tt class="py-keyword">with</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 class="py-keyword">as</tt> <tt class="py-name">gzfile</tt><tt class="py-op">:</tt> </tt>
-<a name="L4609"></a><tt class="py-lineno">4609</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-4715" 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-4715', 'read', 'link-4536');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L4610"></a><tt class="py-lineno">4610</tt>  <tt class="py-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-4716" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4716', '_bytes', 'link-18');">_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="L4611"></a><tt class="py-lineno">4611</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L4612"></a><tt class="py-lineno">4612</tt>  <tt class="py-line"> </tt>
-<a name="ETreeWriteTestCase.test_write_gzip_doctype"></a><div id="ETreeWriteTestCase.test_write_gzip_doctype-def"><a name="L4613"></a><tt class="py-lineno">4613</tt> <a class="py-toggle" href="#" id="ETreeWriteTestCase.test_write_gzip_doctype-toggle" onclick="return toggle('ETreeWriteTestCase.test_write_gzip_doctype');">-</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_doctype">test_write_gzip_doctype</a><tt 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_doctype-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeWriteTestCase.test_write_gzip_doctype-expanded"><a name="L4614"></a><tt class="py-lineno">4614</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-4717" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4709', 'parse', 'link-867');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4710" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4710', '_bytes', 'link-18');">_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="L4619"></a><tt class="py-lineno">4619</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="L4620"></a><tt class="py-lineno">4620</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4711" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-4711', 'write', 'link-4387');">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="L4621"></a><tt class="py-lineno">4621</tt>  <tt class="py-line">        <tt class="py-keyword">with</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 class="py-keyword">as</tt> <tt class="py-name">gzfile</tt><tt class="py-op">:</tt> </tt>
+<a name="L4622"></a><tt class="py-lineno">4622</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-4712" 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-4712', 'read', 'link-4533');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L4623"></a><tt class="py-lineno">4623</tt>  <tt class="py-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-4713" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4713', '_bytes', 'link-18');">_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="L4624"></a><tt class="py-lineno">4624</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L4625"></a><tt class="py-lineno">4625</tt>  <tt class="py-line"> </tt>
+<a name="ETreeWriteTestCase.test_write_gzip_doctype"></a><div id="ETreeWriteTestCase.test_write_gzip_doctype-def"><a name="L4626"></a><tt class="py-lineno">4626</tt> <a class="py-toggle" href="#" id="ETreeWriteTestCase.test_write_gzip_doctype-toggle" onclick="return toggle('ETreeWriteTestCase.test_write_gzip_doctype');">-</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_doctype">test_write_gzip_doctype</a><tt 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_doctype-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeWriteTestCase.test_write_gzip_doctype-expanded"><a name="L4627"></a><tt class="py-lineno">4627</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-4714" 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-4717', 'parse', 'link-870');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4718" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4718', '_bytes', 'link-18');">_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="L4615"></a><tt class="py-lineno">4615</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="L4616"></a><tt class="py-lineno">4616</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4719" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-4719', 'write', 'link-4390');">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 id="link-4720" class="py-name"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-4720', 'doctype', 'link-3729');">doctype</a></tt><tt class="py-op">=</tt><tt class="py-string">'&lt;!DOCTYPE a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L4617"></a><tt class="py-lineno">4617</tt>  <tt class="py-line">        <tt class="py-keyword">with</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 class="py-keyword">as</tt> <tt class="py-name">gzfile</tt><tt class="py-op">:</tt> </tt>
-<a name="L4618"></a><tt class="py-lineno">4618</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-4721" 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-4721', 'read', 'link-4536');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L4619"></a><tt class="py-lineno">4619</tt>  <tt class="py-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-4722" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4722', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE a&gt;\n&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="L4620"></a><tt class="py-lineno">4620</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L4621"></a><tt class="py-lineno">4621</tt>  <tt class="py-line"> </tt>
-<a name="ETreeWriteTestCase.test_write_gzip_level"></a><div id="ETreeWriteTestCase.test_write_gzip_level-def"><a name="L4622"></a><tt class="py-lineno">4622</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="L4623"></a><tt class="py-lineno">4623</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-4723" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4714', 'parse', 'link-867');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4715" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4715', '_bytes', 'link-18');">_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="L4628"></a><tt class="py-lineno">4628</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="L4629"></a><tt class="py-lineno">4629</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4716" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-4716', 'write', 'link-4387');">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 id="link-4717" class="py-name"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-4717', 'doctype', 'link-3726');">doctype</a></tt><tt class="py-op">=</tt><tt class="py-string">'&lt;!DOCTYPE a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L4630"></a><tt class="py-lineno">4630</tt>  <tt class="py-line">        <tt class="py-keyword">with</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 class="py-keyword">as</tt> <tt class="py-name">gzfile</tt><tt class="py-op">:</tt> </tt>
+<a name="L4631"></a><tt class="py-lineno">4631</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-4718" 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-4718', 'read', 'link-4533');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L4632"></a><tt class="py-lineno">4632</tt>  <tt class="py-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-4719" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4719', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE a&gt;\n&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="L4633"></a><tt class="py-lineno">4633</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L4634"></a><tt class="py-lineno">4634</tt>  <tt class="py-line"> </tt>
+<a name="ETreeWriteTestCase.test_write_gzip_level"></a><div id="ETreeWriteTestCase.test_write_gzip_level-def"><a name="L4635"></a><tt class="py-lineno">4635</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="L4636"></a><tt class="py-lineno">4636</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-4720" 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-4723', 'parse', 'link-870');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4724" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4724', '_bytes', 'link-18');">_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="L4624"></a><tt class="py-lineno">4624</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="L4625"></a><tt class="py-lineno">4625</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4725" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-4725', 'write', 'link-4390');">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="L4626"></a><tt class="py-lineno">4626</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="L4627"></a><tt class="py-lineno">4627</tt>  <tt class="py-line"> </tt>
-<a name="L4628"></a><tt class="py-lineno">4628</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="L4629"></a><tt class="py-lineno">4629</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4726" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-4726', 'write', 'link-4390');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L4630"></a><tt class="py-lineno">4630</tt>  <tt class="py-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="L4631"></a><tt class="py-lineno">4631</tt>  <tt class="py-line"> </tt>
-<a name="L4632"></a><tt class="py-lineno">4632</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="L4633"></a><tt class="py-lineno">4633</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4727" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-4727', 'write', 'link-4390');">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="L4634"></a><tt class="py-lineno">4634</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="L4635"></a><tt class="py-lineno">4635</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="L4636"></a><tt class="py-lineno">4636</tt>  <tt class="py-line">        <tt class="py-keyword">with</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 class="py-keyword">as</tt> <tt class="py-name">gzfile</tt><tt class="py-op">:</tt> </tt>
-<a name="L4637"></a><tt class="py-lineno">4637</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-4728" 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-4728', 'read', 'link-4536');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L4638"></a><tt class="py-lineno">4638</tt>  <tt class="py-line"> </tt>
-<a name="L4639"></a><tt class="py-lineno">4639</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="L4640"></a><tt class="py-lineno">4640</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4729" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-4729', 'write', 'link-4390');">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="L4641"></a><tt class="py-lineno">4641</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="L4642"></a><tt class="py-lineno">4642</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="L4643"></a><tt class="py-lineno">4643</tt>  <tt class="py-line">        <tt class="py-keyword">with</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 class="py-keyword">as</tt> <tt class="py-name">gzfile</tt><tt class="py-op">:</tt> </tt>
-<a name="L4644"></a><tt class="py-lineno">4644</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-4730" 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-4730', 'read', 'link-4536');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L4645"></a><tt class="py-lineno">4645</tt>  <tt class="py-line"> </tt>
-<a name="L4646"></a><tt class="py-lineno">4646</tt>  <tt class="py-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-4731" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4731', '_bytes', 'link-18');">_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="L4647"></a><tt class="py-lineno">4647</tt>  <tt class="py-line">                          <tt class="py-name">s0</tt><tt class="py-op">)</tt> </tt>
-<a name="L4648"></a><tt class="py-lineno">4648</tt>  <tt class="py-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-4732" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4732', '_bytes', 'link-18');">_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="L4649"></a><tt class="py-lineno">4649</tt>  <tt class="py-line">                          <tt class="py-name">s1</tt><tt class="py-op">)</tt> </tt>
-<a name="L4650"></a><tt class="py-lineno">4650</tt>  <tt class="py-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-4733" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4733', '_bytes', 'link-18');">_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="L4651"></a><tt class="py-lineno">4651</tt>  <tt class="py-line">                          <tt class="py-name">s9</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L4652"></a><tt class="py-lineno">4652</tt>  <tt class="py-line"> </tt>
-<a name="ETreeWriteTestCase.test_write_file"></a><div id="ETreeWriteTestCase.test_write_file-def"><a name="L4653"></a><tt class="py-lineno">4653</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="L4654"></a><tt class="py-lineno">4654</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-4734" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4720', 'parse', 'link-867');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4721" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4721', '_bytes', 'link-18');">_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="L4637"></a><tt class="py-lineno">4637</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="L4638"></a><tt class="py-lineno">4638</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4722" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-4722', 'write', 'link-4387');">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="L4639"></a><tt class="py-lineno">4639</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="L4640"></a><tt class="py-lineno">4640</tt>  <tt class="py-line"> </tt>
+<a name="L4641"></a><tt class="py-lineno">4641</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="L4642"></a><tt class="py-lineno">4642</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4723" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-4723', 'write', 'link-4387');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L4643"></a><tt class="py-lineno">4643</tt>  <tt class="py-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="L4644"></a><tt class="py-lineno">4644</tt>  <tt class="py-line"> </tt>
+<a name="L4645"></a><tt class="py-lineno">4645</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="L4646"></a><tt class="py-lineno">4646</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4724" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-4724', 'write', 'link-4387');">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="L4647"></a><tt class="py-lineno">4647</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="L4648"></a><tt class="py-lineno">4648</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="L4649"></a><tt class="py-lineno">4649</tt>  <tt class="py-line">        <tt class="py-keyword">with</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 class="py-keyword">as</tt> <tt class="py-name">gzfile</tt><tt class="py-op">:</tt> </tt>
+<a name="L4650"></a><tt class="py-lineno">4650</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-4725" 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-4725', 'read', 'link-4533');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L4651"></a><tt class="py-lineno">4651</tt>  <tt class="py-line"> </tt>
+<a name="L4652"></a><tt class="py-lineno">4652</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="L4653"></a><tt class="py-lineno">4653</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4726" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-4726', 'write', 'link-4387');">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="L4654"></a><tt class="py-lineno">4654</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="L4655"></a><tt class="py-lineno">4655</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="L4656"></a><tt class="py-lineno">4656</tt>  <tt class="py-line">        <tt class="py-keyword">with</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 class="py-keyword">as</tt> <tt class="py-name">gzfile</tt><tt class="py-op">:</tt> </tt>
+<a name="L4657"></a><tt class="py-lineno">4657</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-4727" 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-4727', 'read', 'link-4533');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L4658"></a><tt class="py-lineno">4658</tt>  <tt class="py-line"> </tt>
+<a name="L4659"></a><tt class="py-lineno">4659</tt>  <tt class="py-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-4728" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4728', '_bytes', 'link-18');">_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="L4660"></a><tt class="py-lineno">4660</tt>  <tt class="py-line">                          <tt class="py-name">s0</tt><tt class="py-op">)</tt> </tt>
+<a name="L4661"></a><tt class="py-lineno">4661</tt>  <tt class="py-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-4729" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4729', '_bytes', 'link-18');">_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="L4662"></a><tt class="py-lineno">4662</tt>  <tt class="py-line">                          <tt class="py-name">s1</tt><tt class="py-op">)</tt> </tt>
+<a name="L4663"></a><tt class="py-lineno">4663</tt>  <tt class="py-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-4730" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4730', '_bytes', 'link-18');">_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="L4664"></a><tt class="py-lineno">4664</tt>  <tt class="py-line">                          <tt class="py-name">s9</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L4665"></a><tt class="py-lineno">4665</tt>  <tt class="py-line"> </tt>
+<a name="ETreeWriteTestCase.test_write_file"></a><div id="ETreeWriteTestCase.test_write_file-def"><a name="L4666"></a><tt class="py-lineno">4666</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="L4667"></a><tt class="py-lineno">4667</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-4731" 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-4734', 'parse', 'link-870');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4735" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4735', '_bytes', 'link-18');">_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="L4655"></a><tt class="py-lineno">4655</tt>  <tt class="py-line">        <tt class="py-keyword">with</tt> <tt id="link-4736" class="py-name"><a title="lxml.tests.common_imports.tmpfile" class="py-name" href="#" onclick="return doclink('link-4736', 'tmpfile', 'link-10');">tmpfile</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-keyword">as</tt> <tt id="link-4737" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4737', 'filename', 'link-4398');">filename</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L4656"></a><tt class="py-lineno">4656</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4738" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-4738', 'write', 'link-4390');">write</a></tt><tt class="py-op">(</tt><tt id="link-4739" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4739', 'filename', 'link-4398');">filename</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L4657"></a><tt class="py-lineno">4657</tt>  <tt class="py-line">            <tt id="link-4740" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
-lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4740', 'data', 'link-1150');">data</a></tt> <tt class="py-op">=</tt> <tt id="link-4741" class="py-name"><a title="lxml.tests.common_imports.read_file" class="py-name" href="#" onclick="return doclink('link-4741', 'read_file', 'link-8');">read_file</a></tt><tt class="py-op">(</tt><tt id="link-4742" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4742', 'filename', 'link-4398');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
-<a name="L4658"></a><tt class="py-lineno">4658</tt>  <tt class="py-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-4743" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4743', '_bytes', 'link-18');">_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="L4659"></a><tt class="py-lineno">4659</tt>  <tt class="py-line">                          <tt id="link-4744" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
-lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4744', 'data', 'link-1150');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L4660"></a><tt class="py-lineno">4660</tt>  <tt class="py-line"> </tt>
-<a name="ETreeWriteTestCase.test_write_file_gzip"></a><div id="ETreeWriteTestCase.test_write_file_gzip-def"><a name="L4661"></a><tt class="py-lineno">4661</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="L4662"></a><tt class="py-lineno">4662</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-4745" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4731', 'parse', 'link-867');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4732" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4732', '_bytes', 'link-18');">_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="L4668"></a><tt class="py-lineno">4668</tt>  <tt class="py-line">        <tt class="py-keyword">with</tt> <tt id="link-4733" class="py-name"><a title="lxml.tests.common_imports.tmpfile" class="py-name" href="#" onclick="return doclink('link-4733', 'tmpfile', 'link-10');">tmpfile</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-keyword">as</tt> <tt id="link-4734" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4734', 'filename', 'link-4395');">filename</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L4669"></a><tt class="py-lineno">4669</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4735" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-4735', 'write', 'link-4387');">write</a></tt><tt class="py-op">(</tt><tt id="link-4736" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4736', 'filename', 'link-4395');">filename</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L4670"></a><tt class="py-lineno">4670</tt>  <tt class="py-line">            <tt id="link-4737" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
+lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4737', 'data', 'link-1147');">data</a></tt> <tt class="py-op">=</tt> <tt id="link-4738" class="py-name"><a title="lxml.tests.common_imports.read_file" class="py-name" href="#" onclick="return doclink('link-4738', 'read_file', 'link-8');">read_file</a></tt><tt class="py-op">(</tt><tt id="link-4739" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4739', 'filename', 'link-4395');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
+<a name="L4671"></a><tt class="py-lineno">4671</tt>  <tt class="py-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-4740" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4740', '_bytes', 'link-18');">_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="L4672"></a><tt class="py-lineno">4672</tt>  <tt class="py-line">                          <tt id="link-4741" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
+lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4741', 'data', 'link-1147');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L4673"></a><tt class="py-lineno">4673</tt>  <tt class="py-line"> </tt>
+<a name="ETreeWriteTestCase.test_write_file_gzip"></a><div id="ETreeWriteTestCase.test_write_file_gzip-def"><a name="L4674"></a><tt class="py-lineno">4674</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="L4675"></a><tt class="py-lineno">4675</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-4742" 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-4745', 'parse', 'link-870');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4746" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4746', '_bytes', 'link-18');">_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="L4663"></a><tt class="py-lineno">4663</tt>  <tt class="py-line">        <tt class="py-keyword">with</tt> <tt id="link-4747" class="py-name"><a title="lxml.tests.common_imports.tmpfile" class="py-name" href="#" onclick="return doclink('link-4747', 'tmpfile', 'link-10');">tmpfile</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-keyword">as</tt> <tt id="link-4748" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4748', 'filename', 'link-4398');">filename</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L4664"></a><tt class="py-lineno">4664</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4749" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-4749', 'write', 'link-4390');">write</a></tt><tt class="py-op">(</tt><tt id="link-4750" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4750', 'filename', 'link-4398');">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="L4665"></a><tt class="py-lineno">4665</tt>  <tt class="py-line">            <tt class="py-keyword">with</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-4751" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4751', 'filename', 'link-4398');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> <tt class="py-keyword">as</tt> <tt class="py-name">f</tt><tt class="py-op">:</tt> </tt>
-<a name="L4666"></a><tt class="py-lineno">4666</tt>  <tt class="py-line">                <tt id="link-4752" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
-lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4752', 'data', 'link-1150');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-4753" 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-4753', 'read', 'link-4536');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L4667"></a><tt class="py-lineno">4667</tt>  <tt class="py-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-4754" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4754', '_bytes', 'link-18');">_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="L4668"></a><tt class="py-lineno">4668</tt>  <tt class="py-line">                          <tt id="link-4755" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
-lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4755', 'data', 'link-1150');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L4669"></a><tt class="py-lineno">4669</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="L4670"></a><tt class="py-lineno">4670</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="L4671"></a><tt class="py-lineno">4671</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-4756" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4742', 'parse', 'link-867');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4743" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4743', '_bytes', 'link-18');">_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="L4676"></a><tt class="py-lineno">4676</tt>  <tt class="py-line">        <tt class="py-keyword">with</tt> <tt id="link-4744" class="py-name"><a title="lxml.tests.common_imports.tmpfile" class="py-name" href="#" onclick="return doclink('link-4744', 'tmpfile', 'link-10');">tmpfile</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-keyword">as</tt> <tt id="link-4745" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4745', 'filename', 'link-4395');">filename</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L4677"></a><tt class="py-lineno">4677</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4746" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-4746', 'write', 'link-4387');">write</a></tt><tt class="py-op">(</tt><tt id="link-4747" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4747', 'filename', 'link-4395');">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="L4678"></a><tt class="py-lineno">4678</tt>  <tt class="py-line">            <tt class="py-keyword">with</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-4748" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4748', 'filename', 'link-4395');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> <tt class="py-keyword">as</tt> <tt class="py-name">f</tt><tt class="py-op">:</tt> </tt>
+<a name="L4679"></a><tt class="py-lineno">4679</tt>  <tt class="py-line">                <tt id="link-4749" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
+lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4749', 'data', 'link-1147');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-4750" 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-4750', 'read', 'link-4533');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L4680"></a><tt class="py-lineno">4680</tt>  <tt class="py-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-4751" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4751', '_bytes', 'link-18');">_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="L4681"></a><tt class="py-lineno">4681</tt>  <tt class="py-line">                          <tt id="link-4752" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
+lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4752', 'data', 'link-1147');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L4682"></a><tt class="py-lineno">4682</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="L4683"></a><tt class="py-lineno">4683</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="L4684"></a><tt class="py-lineno">4684</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-4753" 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-4756', 'parse', 'link-870');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4757" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4757', '_bytes', 'link-18');">_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="L4672"></a><tt class="py-lineno">4672</tt>  <tt class="py-line">        <tt class="py-keyword">with</tt> <tt id="link-4758" class="py-name"><a title="lxml.tests.common_imports.tmpfile" class="py-name" href="#" onclick="return doclink('link-4758', 'tmpfile', 'link-10');">tmpfile</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-keyword">as</tt> <tt id="link-4759" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4759', 'filename', 'link-4398');">filename</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L4673"></a><tt class="py-lineno">4673</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4760" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-4760', 'write', 'link-4390');">write</a></tt><tt class="py-op">(</tt><tt id="link-4761" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4761', 'filename', 'link-4398');">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="L4674"></a><tt class="py-lineno">4674</tt>  <tt class="py-line">            <tt id="link-4762" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
-lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4762', 'data', 'link-1150');">data</a></tt> <tt class="py-op">=</tt> <tt id="link-4763" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4753', 'parse', 'link-867');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4754" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4754', '_bytes', 'link-18');">_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="L4685"></a><tt class="py-lineno">4685</tt>  <tt class="py-line">        <tt class="py-keyword">with</tt> <tt id="link-4755" class="py-name"><a title="lxml.tests.common_imports.tmpfile" class="py-name" href="#" onclick="return doclink('link-4755', 'tmpfile', 'link-10');">tmpfile</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-keyword">as</tt> <tt id="link-4756" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4756', 'filename', 'link-4395');">filename</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L4686"></a><tt class="py-lineno">4686</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4757" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-4757', 'write', 'link-4387');">write</a></tt><tt class="py-op">(</tt><tt id="link-4758" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4758', 'filename', 'link-4395');">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="L4687"></a><tt class="py-lineno">4687</tt>  <tt class="py-line">            <tt id="link-4759" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
+lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4759', 'data', 'link-1147');">data</a></tt> <tt class="py-op">=</tt> <tt id="link-4760" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -14752,8 +14748,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4763', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4764" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4764', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-4765" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4760', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4761" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4761', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-4762" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -14761,30 +14757,30 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4765', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4766" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4762', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4763" 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-4766', 'parse', 'link-870');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4767" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4767', 'filename', 'link-4398');">filename</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L4675"></a><tt class="py-lineno">4675</tt>  <tt class="py-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-4768" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4768', '_bytes', 'link-18');">_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="L4676"></a><tt class="py-lineno">4676</tt>  <tt class="py-line">                          <tt id="link-4769" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
-lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4769', 'data', 'link-1150');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L4677"></a><tt class="py-lineno">4677</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="L4678"></a><tt class="py-lineno">4678</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="L4679"></a><tt class="py-lineno">4679</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-4770" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4763', 'parse', 'link-867');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4764" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4764', 'filename', 'link-4395');">filename</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L4688"></a><tt class="py-lineno">4688</tt>  <tt class="py-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-4765" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4765', '_bytes', 'link-18');">_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="L4689"></a><tt class="py-lineno">4689</tt>  <tt class="py-line">                          <tt id="link-4766" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
+lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4766', 'data', 'link-1147');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L4690"></a><tt class="py-lineno">4690</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="L4691"></a><tt class="py-lineno">4691</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="L4692"></a><tt class="py-lineno">4692</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-4767" 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-4770', 'parse', 'link-870');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4771" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4771', '_bytes', 'link-18');">_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="L4680"></a><tt class="py-lineno">4680</tt>  <tt class="py-line">        <tt class="py-keyword">with</tt> <tt id="link-4772" class="py-name"><a title="lxml.tests.common_imports.tmpfile" class="py-name" href="#" onclick="return doclink('link-4772', 'tmpfile', 'link-10');">tmpfile</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-keyword">as</tt> <tt id="link-4773" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4773', 'filename', 'link-4398');">filename</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L4681"></a><tt class="py-lineno">4681</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4774" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-4774', 'write', 'link-4390');">write</a></tt><tt class="py-op">(</tt><tt id="link-4775" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4775', 'filename', 'link-4398');">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="L4682"></a><tt class="py-lineno">4682</tt>  <tt class="py-line">            <tt class="py-keyword">with</tt> <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-4776" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4776', 'filename', 'link-4398');">filename</a></tt><tt class="py-op">)</tt> <tt class="py-keyword">as</tt> <tt class="py-name">f</tt><tt class="py-op">:</tt> </tt>
-<a name="L4683"></a><tt class="py-lineno">4683</tt>  <tt class="py-line">                <tt id="link-4777" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
-lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4777', 'data', 'link-1150');">data</a></tt> <tt class="py-op">=</tt> <tt id="link-4778" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4767', 'parse', 'link-867');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4768" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4768', '_bytes', 'link-18');">_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="L4693"></a><tt class="py-lineno">4693</tt>  <tt class="py-line">        <tt class="py-keyword">with</tt> <tt id="link-4769" class="py-name"><a title="lxml.tests.common_imports.tmpfile" class="py-name" href="#" onclick="return doclink('link-4769', 'tmpfile', 'link-10');">tmpfile</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-keyword">as</tt> <tt id="link-4770" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4770', 'filename', 'link-4395');">filename</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L4694"></a><tt class="py-lineno">4694</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4771" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-4771', 'write', 'link-4387');">write</a></tt><tt class="py-op">(</tt><tt id="link-4772" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4772', 'filename', 'link-4395');">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="L4695"></a><tt class="py-lineno">4695</tt>  <tt class="py-line">            <tt class="py-keyword">with</tt> <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-4773" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4773', 'filename', 'link-4395');">filename</a></tt><tt class="py-op">)</tt> <tt class="py-keyword">as</tt> <tt class="py-name">f</tt><tt class="py-op">:</tt> </tt>
+<a name="L4696"></a><tt class="py-lineno">4696</tt>  <tt class="py-line">                <tt id="link-4774" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
+lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4774', 'data', 'link-1147');">data</a></tt> <tt class="py-op">=</tt> <tt id="link-4775" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -14792,8 +14788,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4778', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4779" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4779', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-4780" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4775', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4776" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-4776', 'tostring', 'link-237');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-4777" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -14801,38 +14797,38 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4780', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4781" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4777', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4778" 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-4781', 'parse', 'link-870');">parse</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="L4684"></a><tt class="py-lineno">4684</tt>  <tt class="py-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-4782" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4782', '_bytes', 'link-18');">_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="L4685"></a><tt class="py-lineno">4685</tt>  <tt class="py-line">                          <tt id="link-4783" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
-lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4783', 'data', 'link-1150');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L4686"></a><tt class="py-lineno">4686</tt>  <tt class="py-line"> </tt>
-<a name="ETreeWriteTestCase.test_write_file_url"></a><div id="ETreeWriteTestCase.test_write_file_url-def"><a name="L4687"></a><tt class="py-lineno">4687</tt> <a class="py-toggle" href="#" id="ETreeWriteTestCase.test_write_file_url-toggle" onclick="return toggle('ETreeWriteTestCase.test_write_file_url');">-</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_url">test_write_file_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="ETreeWriteTestCase.test_write_file_url-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeWriteTestCase.test_write_file_url-expanded"><a name="L4688"></a><tt class="py-lineno">4688</tt>  <tt class="py-line">        <tt id="link-4784" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-4784', 'xml', 'link-361');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-4785" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4785', '_bytes', 'link-18');">_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>
-<a name="L4689"></a><tt class="py-lineno">4689</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-4786" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4778', 'parse', 'link-867');">parse</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="L4697"></a><tt class="py-lineno">4697</tt>  <tt class="py-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-4779" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4779', '_bytes', 'link-18');">_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="L4698"></a><tt class="py-lineno">4698</tt>  <tt class="py-line">                          <tt id="link-4780" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
+lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4780', 'data', 'link-1147');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L4699"></a><tt class="py-lineno">4699</tt>  <tt class="py-line"> </tt>
+<a name="ETreeWriteTestCase.test_write_file_url"></a><div id="ETreeWriteTestCase.test_write_file_url-def"><a name="L4700"></a><tt class="py-lineno">4700</tt> <a class="py-toggle" href="#" id="ETreeWriteTestCase.test_write_file_url-toggle" onclick="return toggle('ETreeWriteTestCase.test_write_file_url');">-</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_url">test_write_file_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="ETreeWriteTestCase.test_write_file_url-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeWriteTestCase.test_write_file_url-expanded"><a name="L4701"></a><tt class="py-lineno">4701</tt>  <tt class="py-line">        <tt id="link-4781" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-4781', 'xml', 'link-358');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-4782" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4782', '_bytes', 'link-18');">_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>
+<a name="L4702"></a><tt class="py-lineno">4702</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-4783" 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-4786', 'parse', 'link-870');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4787" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-4787', 'xml', 'link-361');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L4690"></a><tt class="py-lineno">4690</tt>  <tt class="py-line">        <tt class="py-keyword">with</tt> <tt id="link-4788" class="py-name"><a title="lxml.tests.common_imports.tmpfile" class="py-name" href="#" onclick="return doclink('link-4788', 'tmpfile', 'link-10');">tmpfile</a></tt><tt class="py-op">(</tt><tt id="link-4789" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-4789', 'prefix', 'link-2467');">prefix</a></tt><tt class="py-op">=</tt><tt class="py-string">"p+%20"</tt><tt class="py-op">,</tt> <tt class="py-name">suffix</tt><tt class="py-op">=</tt><tt class="py-string">".xml"</tt><tt class="py-op">)</tt> <tt class="py-keyword">as</tt> <tt id="link-4790" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4790', 'filename', 'link-4398');">filename</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L4691"></a><tt class="py-lineno">4691</tt>  <tt class="py-line">            <tt class="py-name">url</tt> <tt class="py-op">=</tt> <tt class="py-string">'file://'</tt> <tt class="py-op">+</tt> <tt class="py-op">(</tt><tt id="link-4791" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4791', 'filename', 'link-4398');">filename</a></tt> <tt class="py-keyword">if</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">platform</tt> <tt class="py-op">!=</tt> <tt class="py-string">'win32'</tt> </tt>
-<a name="L4692"></a><tt class="py-lineno">4692</tt>  <tt class="py-line">                               <tt class="py-keyword">else</tt> <tt class="py-string">'/'</tt> <tt class="py-op">+</tt> <tt id="link-4792" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4792', 'filename', 'link-4398');">filename</a></tt><tt class="py-op">.</tt><tt id="link-4793" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-4793', 'replace', 'link-644');">replace</a></tt><tt class="py-op">(</tt><tt class="py-string">'\\'</tt><tt class="py-op">,</tt> <tt class="py-string">'/'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L4693"></a><tt class="py-lineno">4693</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4794" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-4794', 'write', 'link-4390');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">)</tt> </tt>
-<a name="L4694"></a><tt class="py-lineno">4694</tt>  <tt class="py-line">            <tt id="link-4795" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
-lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4795', 'data', 'link-1150');">data</a></tt> <tt class="py-op">=</tt> <tt id="link-4796" class="py-name"><a title="lxml.tests.common_imports.read_file" class="py-name" href="#" onclick="return doclink('link-4796', 'read_file', 'link-8');">read_file</a></tt><tt class="py-op">(</tt><tt id="link-4797" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4797', 'filename', 'link-4398');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-4798" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-4798', 'replace', 'link-644');">replace</a></tt><tt class="py-op">(</tt><tt id="link-4799" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4799', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-4800" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4800', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L4695"></a><tt class="py-lineno">4695</tt>  <tt class="py-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-4801" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
-lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4801', 'data', 'link-1150');">data</a></tt><tt class="py-op">,</tt> <tt id="link-4802" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-4802', 'xml', 'link-361');">xml</a></tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L4696"></a><tt class="py-lineno">4696</tt>  <tt class="py-line"> </tt>
-<a name="L4697"></a><tt class="py-lineno">4697</tt>  <tt class="py-line"> </tt>
-<a name="ETreeErrorLogTest"></a><div id="ETreeErrorLogTest-def"><a name="L4698"></a><tt class="py-lineno">4698</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="L4699"></a><tt class="py-lineno">4699</tt>  <tt class="py-line">    <tt id="link-4803" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4783', 'parse', 'link-867');">parse</a></tt><tt class="py-op">(</tt><tt id="link-4784" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-4784', 'xml', 'link-358');">xml</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L4703"></a><tt class="py-lineno">4703</tt>  <tt class="py-line">        <tt class="py-keyword">with</tt> <tt id="link-4785" class="py-name"><a title="lxml.tests.common_imports.tmpfile" class="py-name" href="#" onclick="return doclink('link-4785', 'tmpfile', 'link-10');">tmpfile</a></tt><tt class="py-op">(</tt><tt id="link-4786" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-4786', 'prefix', 'link-2464');">prefix</a></tt><tt class="py-op">=</tt><tt class="py-string">"p+%20"</tt><tt class="py-op">,</tt> <tt class="py-name">suffix</tt><tt class="py-op">=</tt><tt class="py-string">".xml"</tt><tt class="py-op">)</tt> <tt class="py-keyword">as</tt> <tt id="link-4787" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4787', 'filename', 'link-4395');">filename</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L4704"></a><tt class="py-lineno">4704</tt>  <tt class="py-line">            <tt class="py-name">url</tt> <tt class="py-op">=</tt> <tt class="py-string">'file://'</tt> <tt class="py-op">+</tt> <tt class="py-op">(</tt><tt id="link-4788" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4788', 'filename', 'link-4395');">filename</a></tt> <tt class="py-keyword">if</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">platform</tt> <tt class="py-op">!=</tt> <tt class="py-string">'win32'</tt> </tt>
+<a name="L4705"></a><tt class="py-lineno">4705</tt>  <tt class="py-line">                               <tt class="py-keyword">else</tt> <tt class="py-string">'/'</tt> <tt class="py-op">+</tt> <tt id="link-4789" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4789', 'filename', 'link-4395');">filename</a></tt><tt class="py-op">.</tt><tt id="link-4790" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-4790', 'replace', 'link-641');">replace</a></tt><tt class="py-op">(</tt><tt class="py-string">'\\'</tt><tt class="py-op">,</tt> <tt class="py-string">'/'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L4706"></a><tt class="py-lineno">4706</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-4791" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-4791', 'write', 'link-4387');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">)</tt> </tt>
+<a name="L4707"></a><tt class="py-lineno">4707</tt>  <tt class="py-line">            <tt id="link-4792" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
+lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4792', 'data', 'link-1147');">data</a></tt> <tt class="py-op">=</tt> <tt id="link-4793" class="py-name"><a title="lxml.tests.common_imports.read_file" class="py-name" href="#" onclick="return doclink('link-4793', 'read_file', 'link-8');">read_file</a></tt><tt class="py-op">(</tt><tt id="link-4794" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-4794', 'filename', 'link-4395');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-4795" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-4795', 'replace', 'link-641');">replace</a></tt><tt class="py-op">(</tt><tt id="link-4796" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4796', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-4797" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-4797', '_bytes', 'link-18');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L4708"></a><tt class="py-lineno">4708</tt>  <tt class="py-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-4798" class="py-name"><a title="lxml.etree.C14NWriterTarget.data
+lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-4798', 'data', 'link-1147');">data</a></tt><tt class="py-op">,</tt> <tt id="link-4799" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-4799', 'xml', 'link-358');">xml</a></tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L4709"></a><tt class="py-lineno">4709</tt>  <tt class="py-line"> </tt>
+<a name="L4710"></a><tt class="py-lineno">4710</tt>  <tt class="py-line"> </tt>
+<a name="ETreeErrorLogTest"></a><div id="ETreeErrorLogTest-def"><a name="L4711"></a><tt class="py-lineno">4711</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="L4712"></a><tt class="py-lineno">4712</tt>  <tt class="py-line">    <tt id="link-4800" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -14840,7 +14836,7 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4803', 'etree', 'link-3');">etree</a></tt> <tt class="py-op">=</tt> <tt id="link-4804" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4800', 'etree', 'link-3');">etree</a></tt> <tt class="py-op">=</tt> <tt id="link-4801" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -14848,16 +14844,16 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4804', 'etree', 'link-3');">etree</a></tt> </tt>
-<a name="L4700"></a><tt class="py-lineno">4700</tt>  <tt class="py-line"> </tt>
-<a name="ETreeErrorLogTest.test_parse_error_logging"></a><div id="ETreeErrorLogTest.test_parse_error_logging-def"><a name="L4701"></a><tt class="py-lineno">4701</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="L4702"></a><tt class="py-lineno">4702</tt>  <tt class="py-line">        <tt id="link-4805" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4801', 'etree', 'link-3');">etree</a></tt> </tt>
+<a name="L4713"></a><tt class="py-lineno">4713</tt>  <tt class="py-line"> </tt>
+<a name="ETreeErrorLogTest.test_parse_error_logging"></a><div id="ETreeErrorLogTest.test_parse_error_logging-def"><a name="L4714"></a><tt class="py-lineno">4714</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="L4715"></a><tt class="py-lineno">4715</tt>  <tt class="py-line">        <tt id="link-4802" 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-4805', 'parse', 'link-870');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4806" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4802', 'parse', 'link-867');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4803" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -14865,15 +14861,15 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4806', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4807" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4803', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4804" 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-4807', 'parse', 'link-870');">parse</a></tt> </tt>
-<a name="L4703"></a><tt class="py-lineno">4703</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="L4704"></a><tt class="py-lineno">4704</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4808" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4804', 'parse', 'link-867');">parse</a></tt> </tt>
+<a name="L4716"></a><tt class="py-lineno">4716</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="L4717"></a><tt class="py-lineno">4717</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4805" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -14881,49 +14877,49 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4808', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4809" 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-4809', 'clear_error_log', 'link-4809');">clear_error_log</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L4705"></a><tt class="py-lineno">4705</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L4706"></a><tt class="py-lineno">4706</tt>  <tt class="py-line">            <tt id="link-4810" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4805', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4806" 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-4806', 'clear_error_log', 'link-4806');">clear_error_log</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L4718"></a><tt class="py-lineno">4718</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L4719"></a><tt class="py-lineno">4719</tt>  <tt class="py-line">            <tt id="link-4807" 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-4810', 'parse', 'link-870');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L4707"></a><tt class="py-lineno">4707</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="L4708"></a><tt class="py-lineno">4708</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="L4709"></a><tt class="py-lineno">4709</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="L4710"></a><tt class="py-lineno">4710</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-4811" 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-4807', 'parse', 'link-867');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L4720"></a><tt class="py-lineno">4720</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="L4721"></a><tt class="py-lineno">4721</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="L4722"></a><tt class="py-lineno">4722</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="L4723"></a><tt class="py-lineno">4723</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-4808" 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-4811', 'error_log', 'link-4811');">error_log</a></tt> </tt>
-<a name="L4711"></a><tt class="py-lineno">4711</tt>  <tt class="py-line">        <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-4812" class="py-name"><a title="lxml.etree.C14NWriterTarget.close
+lxml.etree.iterparse.error_log" class="py-name" href="#" onclick="return doclink('link-4808', 'error_log', 'link-4808');">error_log</a></tt> </tt>
+<a name="L4724"></a><tt class="py-lineno">4724</tt>  <tt class="py-line">        <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-4809" class="py-name"><a title="lxml.etree.C14NWriterTarget.close
 lxml.etree.TreeBuilder.close
 lxml.etree._FeedParser.close
-lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-4812', 'close', 'link-1089');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L4712"></a><tt class="py-lineno">4712</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-4813" 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-4813', 'log', 'link-4813');">log</a></tt> <tt class="py-keyword">for</tt> <tt id="link-4814" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4814', 'log', 'link-4813');">log</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">logs</tt> </tt>
-<a name="L4713"></a><tt class="py-lineno">4713</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-4815" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4815', 'log', 'link-4813');">log</a></tt><tt class="py-op">.</tt><tt id="link-4816" 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-4816', 'message', 'link-4816');">message</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4714"></a><tt class="py-lineno">4714</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-4817" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4817', 'log', 'link-4813');">log</a></tt> <tt class="py-keyword">for</tt> <tt id="link-4818" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4818', 'log', 'link-4813');">log</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">logs</tt> </tt>
-<a name="L4715"></a><tt class="py-lineno">4715</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-4819" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4819', 'log', 'link-4813');">log</a></tt><tt class="py-op">.</tt><tt id="link-4820" 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-4820', 'domain_name', 'link-4820');">domain_name</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4716"></a><tt class="py-lineno">4716</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-4821" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4821', 'log', 'link-4813');">log</a></tt> <tt class="py-keyword">for</tt> <tt id="link-4822" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4822', 'log', 'link-4813');">log</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">logs</tt> </tt>
-<a name="L4717"></a><tt class="py-lineno">4717</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-4823" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4823', 'log', 'link-4813');">log</a></tt><tt class="py-op">.</tt><tt id="link-4824" 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-4824', 'type_name', 'link-4824');">type_name</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4718"></a><tt class="py-lineno">4718</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-4825" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4825', 'log', 'link-4813');">log</a></tt> <tt class="py-keyword">for</tt> <tt id="link-4826" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4826', 'log', 'link-4813');">log</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">logs</tt> </tt>
-<a name="L4719"></a><tt class="py-lineno">4719</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-4827" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4827', 'log', 'link-4813');">log</a></tt><tt class="py-op">.</tt><tt id="link-4828" 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-4828', 'line', 'link-4828');">line</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4720"></a><tt class="py-lineno">4720</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-4829" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4829', 'log', 'link-4813');">log</a></tt> <tt class="py-keyword">for</tt> <tt id="link-4830" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4830', 'log', 'link-4813');">log</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">logs</tt> </tt>
-<a name="L4721"></a><tt class="py-lineno">4721</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-4831" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4831', 'log', 'link-4813');">log</a></tt><tt class="py-op">.</tt><tt id="link-4832" 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-4832', 'column', 'link-4832');">column</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L4722"></a><tt class="py-lineno">4722</tt>  <tt class="py-line"> </tt>
-<a name="ETreeErrorLogTest._test_python_error_logging"></a><div id="ETreeErrorLogTest._test_python_error_logging-def"><a name="L4723"></a><tt class="py-lineno">4723</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="L4724"></a><tt class="py-lineno">4724</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="L4725"></a><tt class="py-lineno">4725</tt>  <tt class="py-line"><tt class="py-docstring">        reset the logging setup ...</tt> </tt>
-<a name="L4726"></a><tt class="py-lineno">4726</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
-<a name="L4727"></a><tt class="py-lineno">4727</tt>  <tt class="py-line">        <tt id="link-4833" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-4809', 'close', 'link-1086');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L4725"></a><tt class="py-lineno">4725</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-4810" 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-4810', 'log', 'link-4810');">log</a></tt> <tt class="py-keyword">for</tt> <tt id="link-4811" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4811', 'log', 'link-4810');">log</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">logs</tt> </tt>
+<a name="L4726"></a><tt class="py-lineno">4726</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-4812" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4812', 'log', 'link-4810');">log</a></tt><tt class="py-op">.</tt><tt id="link-4813" 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-4813', 'message', 'link-4813');">message</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4727"></a><tt class="py-lineno">4727</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-4814" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4814', 'log', 'link-4810');">log</a></tt> <tt class="py-keyword">for</tt> <tt id="link-4815" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4815', 'log', 'link-4810');">log</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">logs</tt> </tt>
+<a name="L4728"></a><tt class="py-lineno">4728</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-4816" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4816', 'log', 'link-4810');">log</a></tt><tt class="py-op">.</tt><tt id="link-4817" 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-4817', 'domain_name', 'link-4817');">domain_name</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4729"></a><tt class="py-lineno">4729</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-4818" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4818', 'log', 'link-4810');">log</a></tt> <tt class="py-keyword">for</tt> <tt id="link-4819" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4819', 'log', 'link-4810');">log</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">logs</tt> </tt>
+<a name="L4730"></a><tt class="py-lineno">4730</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-4820" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4820', 'log', 'link-4810');">log</a></tt><tt class="py-op">.</tt><tt id="link-4821" 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-4821', 'type_name', 'link-4821');">type_name</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4731"></a><tt class="py-lineno">4731</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-4822" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4822', 'log', 'link-4810');">log</a></tt> <tt class="py-keyword">for</tt> <tt id="link-4823" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4823', 'log', 'link-4810');">log</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">logs</tt> </tt>
+<a name="L4732"></a><tt class="py-lineno">4732</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-4824" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4824', 'log', 'link-4810');">log</a></tt><tt class="py-op">.</tt><tt id="link-4825" 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-4825', 'line', 'link-4825');">line</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4733"></a><tt class="py-lineno">4733</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-4826" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4826', 'log', 'link-4810');">log</a></tt> <tt class="py-keyword">for</tt> <tt id="link-4827" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4827', 'log', 'link-4810');">log</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">logs</tt> </tt>
+<a name="L4734"></a><tt class="py-lineno">4734</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-4828" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-4828', 'log', 'link-4810');">log</a></tt><tt class="py-op">.</tt><tt id="link-4829" 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-4829', 'column', 'link-4829');">column</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L4735"></a><tt class="py-lineno">4735</tt>  <tt class="py-line"> </tt>
+<a name="ETreeErrorLogTest._test_python_error_logging"></a><div id="ETreeErrorLogTest._test_python_error_logging-def"><a name="L4736"></a><tt class="py-lineno">4736</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="L4737"></a><tt class="py-lineno">4737</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="L4738"></a><tt class="py-lineno">4738</tt>  <tt class="py-line"><tt class="py-docstring">        reset the logging setup ...</tt> </tt>
+<a name="L4739"></a><tt class="py-lineno">4739</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L4740"></a><tt class="py-lineno">4740</tt>  <tt class="py-line">        <tt id="link-4830" 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-4833', 'parse', 'link-870');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4834" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4830', 'parse', 'link-867');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4831" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -14931,20 +14927,20 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4834', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4835" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4831', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4832" 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-4835', 'parse', 'link-870');">parse</a></tt> </tt>
-<a name="L4728"></a><tt class="py-lineno">4728</tt>  <tt class="py-line"> </tt>
-<a name="L4729"></a><tt class="py-lineno">4729</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="L4730"></a><tt class="py-lineno">4730</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="L4731"></a><tt class="py-lineno">4731</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="L4732"></a><tt class="py-lineno">4732</tt>  <tt class="py-line">                <tt class="py-name">messages</tt><tt class="py-op">.</tt><tt id="link-4836" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-4836', 'append', 'link-726');">append</a></tt><tt class="py-op">(</tt><tt id="link-4837" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-4837', 'message', 'link-4816');">message</a></tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L4733"></a><tt class="py-lineno">4733</tt>  <tt class="py-line"> </tt>
-<a name="L4734"></a><tt class="py-lineno">4734</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4838" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4832', 'parse', 'link-867');">parse</a></tt> </tt>
+<a name="L4741"></a><tt class="py-lineno">4741</tt>  <tt class="py-line"> </tt>
+<a name="L4742"></a><tt class="py-lineno">4742</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="L4743"></a><tt class="py-lineno">4743</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="L4744"></a><tt class="py-lineno">4744</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="L4745"></a><tt class="py-lineno">4745</tt>  <tt class="py-line">                <tt class="py-name">messages</tt><tt class="py-op">.</tt><tt id="link-4833" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-4833', 'append', 'link-322');">append</a></tt><tt class="py-op">(</tt><tt id="link-4834" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-4834', 'message', 'link-4813');">message</a></tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L4746"></a><tt class="py-lineno">4746</tt>  <tt class="py-line"> </tt>
+<a name="L4747"></a><tt class="py-lineno">4747</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4835" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -14952,35 +14948,35 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4838', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4839" 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-4839', 'use_global_python_log', 'link-4839');">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="L4735"></a><tt class="py-lineno">4735</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="L4736"></a><tt class="py-lineno">4736</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L4737"></a><tt class="py-lineno">4737</tt>  <tt class="py-line">            <tt id="link-4840" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4835', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4836" 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-4836', 'use_global_python_log', 'link-4836');">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="L4748"></a><tt class="py-lineno">4748</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="L4749"></a><tt class="py-lineno">4749</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L4750"></a><tt class="py-lineno">4750</tt>  <tt class="py-line">            <tt id="link-4837" 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-4840', 'parse', 'link-870');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L4738"></a><tt class="py-lineno">4738</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="L4739"></a><tt class="py-lineno">4739</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
-<a name="L4740"></a><tt class="py-lineno">4740</tt>  <tt class="py-line">        <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-4841" class="py-name"><a title="lxml.etree.C14NWriterTarget.close
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-4837', 'parse', 'link-867');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L4751"></a><tt class="py-lineno">4751</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="L4752"></a><tt class="py-lineno">4752</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
+<a name="L4753"></a><tt class="py-lineno">4753</tt>  <tt class="py-line">        <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-4838" class="py-name"><a title="lxml.etree.C14NWriterTarget.close
 lxml.etree.TreeBuilder.close
 lxml.etree._FeedParser.close
-lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-4841', 'close', 'link-1089');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L4741"></a><tt class="py-lineno">4741</tt>  <tt class="py-line"> </tt>
-<a name="L4742"></a><tt class="py-lineno">4742</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-4842" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-4842', 'message', 'link-4816');">message</a></tt> <tt class="py-keyword">for</tt> <tt id="link-4843" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-4843', 'message', 'link-4816');">message</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">messages</tt> </tt>
-<a name="L4743"></a><tt class="py-lineno">4743</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-4844" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-4844', 'message', 'link-4816');">message</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4744"></a><tt class="py-lineno">4744</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-4845" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-4845', 'message', 'link-4816');">message</a></tt> <tt class="py-keyword">for</tt> <tt id="link-4846" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-4846', 'message', 'link-4816');">message</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">messages</tt> </tt>
-<a name="L4745"></a><tt class="py-lineno">4745</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-4847" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-4847', 'message', 'link-4816');">message</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4746"></a><tt class="py-lineno">4746</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-4848" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-4848', 'message', 'link-4816');">message</a></tt> <tt class="py-keyword">for</tt> <tt id="link-4849" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-4849', 'message', 'link-4816');">message</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">messages</tt> </tt>
-<a name="L4747"></a><tt class="py-lineno">4747</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-4850" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-4850', 'message', 'link-4816');">message</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4748"></a><tt class="py-lineno">4748</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-4851" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-4851', 'message', 'link-4816');">message</a></tt> <tt class="py-keyword">for</tt> <tt id="link-4852" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-4852', 'message', 'link-4816');">message</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">messages</tt> </tt>
-<a name="L4749"></a><tt class="py-lineno">4749</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-4853" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-4853', 'message', 'link-4816');">message</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L4750"></a><tt class="py-lineno">4750</tt>  <tt class="py-line"> </tt>
-<a name="L4751"></a><tt class="py-lineno">4751</tt>  <tt class="py-line"> </tt>
-<a name="XMLPullParserTest"></a><div id="XMLPullParserTest-def"><a name="L4752"></a><tt class="py-lineno">4752</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="L4753"></a><tt class="py-lineno">4753</tt>  <tt class="py-line">    <tt id="link-4854" class="py-name"><a title="lxml.etree
+lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-4838', 'close', 'link-1086');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L4754"></a><tt class="py-lineno">4754</tt>  <tt class="py-line"> </tt>
+<a name="L4755"></a><tt class="py-lineno">4755</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-4839" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-4839', 'message', 'link-4813');">message</a></tt> <tt class="py-keyword">for</tt> <tt id="link-4840" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-4840', 'message', 'link-4813');">message</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">messages</tt> </tt>
+<a name="L4756"></a><tt class="py-lineno">4756</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-4841" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-4841', 'message', 'link-4813');">message</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4757"></a><tt class="py-lineno">4757</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-4842" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-4842', 'message', 'link-4813');">message</a></tt> <tt class="py-keyword">for</tt> <tt id="link-4843" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-4843', 'message', 'link-4813');">message</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">messages</tt> </tt>
+<a name="L4758"></a><tt class="py-lineno">4758</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-4844" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-4844', 'message', 'link-4813');">message</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4759"></a><tt class="py-lineno">4759</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-4845" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-4845', 'message', 'link-4813');">message</a></tt> <tt class="py-keyword">for</tt> <tt id="link-4846" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-4846', 'message', 'link-4813');">message</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">messages</tt> </tt>
+<a name="L4760"></a><tt class="py-lineno">4760</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-4847" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-4847', 'message', 'link-4813');">message</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4761"></a><tt class="py-lineno">4761</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-4848" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-4848', 'message', 'link-4813');">message</a></tt> <tt class="py-keyword">for</tt> <tt id="link-4849" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-4849', 'message', 'link-4813');">message</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">messages</tt> </tt>
+<a name="L4762"></a><tt class="py-lineno">4762</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-4850" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-4850', 'message', 'link-4813');">message</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L4763"></a><tt class="py-lineno">4763</tt>  <tt class="py-line"> </tt>
+<a name="L4764"></a><tt class="py-lineno">4764</tt>  <tt class="py-line"> </tt>
+<a name="XMLPullParserTest"></a><div id="XMLPullParserTest-def"><a name="L4765"></a><tt class="py-lineno">4765</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="L4766"></a><tt class="py-lineno">4766</tt>  <tt class="py-line">    <tt id="link-4851" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -14988,7 +14984,7 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4854', 'etree', 'link-3');">etree</a></tt> <tt class="py-op">=</tt> <tt id="link-4855" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4851', 'etree', 'link-3');">etree</a></tt> <tt class="py-op">=</tt> <tt id="link-4852" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -14996,38 +14992,38 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4855', 'etree', 'link-3');">etree</a></tt> </tt>
-<a name="L4754"></a><tt class="py-lineno">4754</tt>  <tt class="py-line"> </tt>
-<a name="XMLPullParserTest.assert_event_tags"></a><div id="XMLPullParserTest.assert_event_tags-def"><a name="L4755"></a><tt class="py-lineno">4755</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="L4756"></a><tt class="py-lineno">4756</tt>  <tt class="py-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-4856" 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-4856', 'action', 'link-4856');">action</a></tt><tt class="py-op">,</tt> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-4857" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4852', 'etree', 'link-3');">etree</a></tt> </tt>
+<a name="L4767"></a><tt class="py-lineno">4767</tt>  <tt class="py-line"> </tt>
+<a name="XMLPullParserTest.assert_event_tags"></a><div id="XMLPullParserTest.assert_event_tags-def"><a name="L4768"></a><tt class="py-lineno">4768</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="L4769"></a><tt class="py-lineno">4769</tt>  <tt class="py-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-4853" 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-4853', 'action', 'link-4853');">action</a></tt><tt class="py-op">,</tt> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-4854" 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-4857', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt id="link-4858" class="py-name"><a title="lxml.html.FormElement.action" class="py-name" href="#" onclick="return doclink('link-4858', 'action', 'link-4856');">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="L4757"></a><tt class="py-lineno">4757</tt>  <tt class="py-line">                         <tt class="py-name">expected</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L4758"></a><tt class="py-lineno">4758</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="L4759"></a><tt class="py-lineno">4759</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="L4760"></a><tt class="py-lineno">4760</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="L4761"></a><tt class="py-lineno">4761</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="L4762"></a><tt class="py-lineno">4762</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-4859" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-4854', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt id="link-4855" class="py-name"><a title="lxml.html.FormElement.action" class="py-name" href="#" onclick="return doclink('link-4855', 'action', 'link-4853');">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="L4770"></a><tt class="py-lineno">4770</tt>  <tt class="py-line">                         <tt class="py-name">expected</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L4771"></a><tt class="py-lineno">4771</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="L4772"></a><tt class="py-lineno">4772</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="L4773"></a><tt class="py-lineno">4773</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="L4774"></a><tt class="py-lineno">4774</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="L4775"></a><tt class="py-lineno">4775</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-4856" 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-4859', 'tag', 'link-73');">tag</a></tt> </tt>
-</div><a name="L4763"></a><tt class="py-lineno">4763</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="L4764"></a><tt class="py-lineno">4764</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-4860" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-4856', 'tag', 'link-73');">tag</a></tt> </tt>
+</div><a name="L4776"></a><tt class="py-lineno">4776</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="L4777"></a><tt class="py-lineno">4777</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-4857" 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-4860', 'tag', 'link-73');">tag</a></tt> </tt>
-</div><a name="L4765"></a><tt class="py-lineno">4765</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="L4766"></a><tt class="py-lineno">4766</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">'close()'</tt> </tt>
-</div></div><a name="L4767"></a><tt class="py-lineno">4767</tt>  <tt class="py-line"> </tt>
-<a name="L4768"></a><tt class="py-lineno">4768</tt>  <tt class="py-line">        <tt id="link-4861" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4861', 'parser', 'link-861');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4862" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-4857', 'tag', 'link-73');">tag</a></tt> </tt>
+</div><a name="L4778"></a><tt class="py-lineno">4778</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="L4779"></a><tt class="py-lineno">4779</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">'close()'</tt> </tt>
+</div></div><a name="L4780"></a><tt class="py-lineno">4780</tt>  <tt class="py-line"> </tt>
+<a name="L4781"></a><tt class="py-lineno">4781</tt>  <tt class="py-line">        <tt id="link-4858" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4858', 'parser', 'link-858');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4859" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -15035,52 +15031,52 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4862', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4863" 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-4863', 'XMLPullParser', 'link-4863');">XMLPullParser</a></tt><tt class="py-op">(</tt><tt id="link-4864" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-4864', 'target', 'link-727');">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="L4769"></a><tt class="py-lineno">4769</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt id="link-4865" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4865', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4866" 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-4866', 'read_events', 'link-4866');">read_events</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L4770"></a><tt class="py-lineno">4770</tt>  <tt class="py-line"> </tt>
-<a name="L4771"></a><tt class="py-lineno">4771</tt>  <tt class="py-line">        <tt id="link-4867" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4867', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4868" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4868', 'feed', 'link-1076');">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="L4772"></a><tt class="py-lineno">4772</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertFalse</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="L4773"></a><tt class="py-lineno">4773</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertFalse</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="L4774"></a><tt class="py-lineno">4774</tt>  <tt class="py-line">        <tt id="link-4869" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4869', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4870" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4870', 'feed', 'link-1076');">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="L4775"></a><tt class="py-lineno">4775</tt>  <tt class="py-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="L4776"></a><tt class="py-lineno">4776</tt>  <tt class="py-line">        <tt id="link-4871" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4871', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4872" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4872', 'feed', 'link-1076');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/child&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L4777"></a><tt class="py-lineno">4777</tt>  <tt class="py-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="L4778"></a><tt class="py-lineno">4778</tt>  <tt class="py-line">        <tt id="link-4873" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4873', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4874" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4874', 'feed', 'link-1076');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/root&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L4779"></a><tt class="py-lineno">4779</tt>  <tt class="py-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="L4780"></a><tt class="py-lineno">4780</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertFalse</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="L4781"></a><tt class="py-lineno">4781</tt>  <tt class="py-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-4875" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4875', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4876" class="py-name"><a title="lxml.etree.C14NWriterTarget.close
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4859', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4860" 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-4860', 'XMLPullParser', 'link-4860');">XMLPullParser</a></tt><tt class="py-op">(</tt><tt id="link-4861" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-4861', 'target', 'link-724');">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="L4782"></a><tt class="py-lineno">4782</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt id="link-4862" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4862', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4863" 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-4863', 'read_events', 'link-4863');">read_events</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L4783"></a><tt class="py-lineno">4783</tt>  <tt class="py-line"> </tt>
+<a name="L4784"></a><tt class="py-lineno">4784</tt>  <tt class="py-line">        <tt id="link-4864" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4864', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4865" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4865', 'feed', 'link-1073');">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="L4785"></a><tt class="py-lineno">4785</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertFalse</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="L4786"></a><tt class="py-lineno">4786</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertFalse</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="L4787"></a><tt class="py-lineno">4787</tt>  <tt class="py-line">        <tt id="link-4866" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4866', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4867" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4867', 'feed', 'link-1073');">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="L4788"></a><tt class="py-lineno">4788</tt>  <tt class="py-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="L4789"></a><tt class="py-lineno">4789</tt>  <tt class="py-line">        <tt id="link-4868" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4868', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4869" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4869', 'feed', 'link-1073');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/child&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L4790"></a><tt class="py-lineno">4790</tt>  <tt class="py-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="L4791"></a><tt class="py-lineno">4791</tt>  <tt class="py-line">        <tt id="link-4870" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4870', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4871" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4871', 'feed', 'link-1073');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/root&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L4792"></a><tt class="py-lineno">4792</tt>  <tt class="py-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="L4793"></a><tt class="py-lineno">4793</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertFalse</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="L4794"></a><tt class="py-lineno">4794</tt>  <tt class="py-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-4872" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4872', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4873" class="py-name"><a title="lxml.etree.C14NWriterTarget.close
 lxml.etree.TreeBuilder.close
 lxml.etree._FeedParser.close
-lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-4876', 'close', 'link-1089');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L4782"></a><tt class="py-lineno">4782</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="L4783"></a><tt class="py-lineno">4783</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="L4784"></a><tt class="py-lineno">4784</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="L4785"></a><tt class="py-lineno">4785</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="L4786"></a><tt class="py-lineno">4786</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-4877" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-4873', 'close', 'link-1086');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L4795"></a><tt class="py-lineno">4795</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="L4796"></a><tt class="py-lineno">4796</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="L4797"></a><tt class="py-lineno">4797</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="L4798"></a><tt class="py-lineno">4798</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="L4799"></a><tt class="py-lineno">4799</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-4874" 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-4877', 'tag', 'link-73');">tag</a></tt> </tt>
-</div><a name="L4787"></a><tt class="py-lineno">4787</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="L4788"></a><tt class="py-lineno">4788</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-4878" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-4874', 'tag', 'link-73');">tag</a></tt> </tt>
+</div><a name="L4800"></a><tt class="py-lineno">4800</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="L4801"></a><tt class="py-lineno">4801</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-4875" 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-4878', 'tag', 'link-73');">tag</a></tt> </tt>
-</div><a name="L4789"></a><tt class="py-lineno">4789</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="L4790"></a><tt class="py-lineno">4790</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">'close()'</tt> </tt>
-</div></div><a name="L4791"></a><tt class="py-lineno">4791</tt>  <tt class="py-line"> </tt>
-<a name="L4792"></a><tt class="py-lineno">4792</tt>  <tt class="py-line">        <tt id="link-4879" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4879', 'parser', 'link-861');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4880" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-4875', 'tag', 'link-73');">tag</a></tt> </tt>
+</div><a name="L4802"></a><tt class="py-lineno">4802</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="L4803"></a><tt class="py-lineno">4803</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">'close()'</tt> </tt>
+</div></div><a name="L4804"></a><tt class="py-lineno">4804</tt>  <tt class="py-line"> </tt>
+<a name="L4805"></a><tt class="py-lineno">4805</tt>  <tt class="py-line">        <tt id="link-4876" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4876', 'parser', 'link-858');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4877" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -15088,43 +15084,43 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4880', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4881" class="py-name"><a title="lxml.etree.XMLPullParser" class="py-name" href="#" onclick="return doclink('link-4881', 'XMLPullParser', 'link-4863');">XMLPullParser</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L4793"></a><tt class="py-lineno">4793</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-4882" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-4882', 'target', 'link-727');">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="L4794"></a><tt class="py-lineno">4794</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt id="link-4883" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4883', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4884" class="py-name"><a title="lxml.etree.HTMLPullParser.read_events
-lxml.etree.XMLPullParser.read_events" class="py-name" href="#" onclick="return doclink('link-4884', 'read_events', 'link-4866');">read_events</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L4795"></a><tt class="py-lineno">4795</tt>  <tt class="py-line"> </tt>
-<a name="L4796"></a><tt class="py-lineno">4796</tt>  <tt class="py-line">        <tt id="link-4885" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4885', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4886" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4886', 'feed', 'link-1076');">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="L4797"></a><tt class="py-lineno">4797</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L4798"></a><tt class="py-lineno">4798</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="L4799"></a><tt class="py-lineno">4799</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="L4800"></a><tt class="py-lineno">4800</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertFalse</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="L4801"></a><tt class="py-lineno">4801</tt>  <tt class="py-line">        <tt id="link-4887" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4887', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4888" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4888', 'feed', 'link-1076');">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="L4802"></a><tt class="py-lineno">4802</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L4803"></a><tt class="py-lineno">4803</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="L4804"></a><tt class="py-lineno">4804</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="L4805"></a><tt class="py-lineno">4805</tt>  <tt class="py-line">        <tt id="link-4889" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4889', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4890" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4890', 'feed', 'link-1076');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/child&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L4806"></a><tt class="py-lineno">4806</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L4807"></a><tt class="py-lineno">4807</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="L4808"></a><tt class="py-lineno">4808</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="L4809"></a><tt class="py-lineno">4809</tt>  <tt class="py-line">        <tt id="link-4891" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4891', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4892" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4892', 'feed', 'link-1076');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/root&gt;'</tt><tt class="py-op">)</tt> </tt>
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4877', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4878" class="py-name"><a title="lxml.etree.XMLPullParser" class="py-name" href="#" onclick="return doclink('link-4878', 'XMLPullParser', 'link-4860');">XMLPullParser</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L4806"></a><tt class="py-lineno">4806</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-4879" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-4879', 'target', 'link-724');">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="L4807"></a><tt class="py-lineno">4807</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt id="link-4880" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4880', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4881" class="py-name"><a title="lxml.etree.HTMLPullParser.read_events
+lxml.etree.XMLPullParser.read_events" class="py-name" href="#" onclick="return doclink('link-4881', 'read_events', 'link-4863');">read_events</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L4808"></a><tt class="py-lineno">4808</tt>  <tt class="py-line"> </tt>
+<a name="L4809"></a><tt class="py-lineno">4809</tt>  <tt class="py-line">        <tt id="link-4882" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4882', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4883" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4883', 'feed', 'link-1073');">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="L4810"></a><tt class="py-lineno">4810</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L4811"></a><tt class="py-lineno">4811</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="L4811"></a><tt class="py-lineno">4811</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="L4812"></a><tt class="py-lineno">4812</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="L4813"></a><tt class="py-lineno">4813</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertFalse</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="L4814"></a><tt class="py-lineno">4814</tt>  <tt class="py-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-4893" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4893', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4894" class="py-name"><a title="lxml.etree.C14NWriterTarget.close
+<a name="L4814"></a><tt class="py-lineno">4814</tt>  <tt class="py-line">        <tt id="link-4884" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4884', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4885" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4885', 'feed', 'link-1073');">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="L4815"></a><tt class="py-lineno">4815</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L4816"></a><tt class="py-lineno">4816</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="L4817"></a><tt class="py-lineno">4817</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="L4818"></a><tt class="py-lineno">4818</tt>  <tt class="py-line">        <tt id="link-4886" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4886', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4887" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4887', 'feed', 'link-1073');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/child&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L4819"></a><tt class="py-lineno">4819</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L4820"></a><tt class="py-lineno">4820</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="L4821"></a><tt class="py-lineno">4821</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="L4822"></a><tt class="py-lineno">4822</tt>  <tt class="py-line">        <tt id="link-4888" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4888', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4889" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4889', 'feed', 'link-1073');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/root&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L4823"></a><tt class="py-lineno">4823</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L4824"></a><tt class="py-lineno">4824</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="L4825"></a><tt class="py-lineno">4825</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="L4826"></a><tt class="py-lineno">4826</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertFalse</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="L4827"></a><tt class="py-lineno">4827</tt>  <tt class="py-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-4890" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4890', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4891" class="py-name"><a title="lxml.etree.C14NWriterTarget.close
 lxml.etree.TreeBuilder.close
 lxml.etree._FeedParser.close
-lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-4894', 'close', 'link-1089');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L4815"></a><tt class="py-lineno">4815</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="L4816"></a><tt class="py-lineno">4816</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="L4817"></a><tt class="py-lineno">4817</tt>  <tt class="py-line">        <tt id="link-4895" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4895', 'parser', 'link-861');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4896" class="py-name"><a title="lxml.etree
+lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-4891', 'close', 'link-1086');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L4828"></a><tt class="py-lineno">4828</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="L4829"></a><tt class="py-lineno">4829</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="L4830"></a><tt class="py-lineno">4830</tt>  <tt class="py-line">        <tt id="link-4892" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4892', 'parser', 'link-858');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4893" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -15132,8 +15128,8 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4896', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4897" class="py-name"><a title="lxml.etree.XMLPullParser" class="py-name" href="#" onclick="return doclink('link-4897', 'XMLPullParser', 'link-4863');">XMLPullParser</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L4818"></a><tt class="py-lineno">4818</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-4898" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-4898', 'target', 'link-727');">target</a></tt><tt class="py-op">=</tt><tt id="link-4899" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4893', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4894" class="py-name"><a title="lxml.etree.XMLPullParser" class="py-name" href="#" onclick="return doclink('link-4894', 'XMLPullParser', 'link-4860');">XMLPullParser</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L4831"></a><tt class="py-lineno">4831</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-4895" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-4895', 'target', 'link-724');">target</a></tt><tt class="py-op">=</tt><tt id="link-4896" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -15141,66 +15137,66 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4899', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4900" 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-4900', 'TreeBuilder', 'link-4900');">TreeBuilder</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L4819"></a><tt class="py-lineno">4819</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt id="link-4901" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4901', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4902" class="py-name"><a title="lxml.etree.HTMLPullParser.read_events
-lxml.etree.XMLPullParser.read_events" class="py-name" href="#" onclick="return doclink('link-4902', 'read_events', 'link-4866');">read_events</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L4820"></a><tt class="py-lineno">4820</tt>  <tt class="py-line"> </tt>
-<a name="L4821"></a><tt class="py-lineno">4821</tt>  <tt class="py-line">        <tt id="link-4903" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4903', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4904" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4904', 'feed', 'link-1076');">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="L4822"></a><tt class="py-lineno">4822</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4905" 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-4905', 'assert_event_tags', 'link-4905');">assert_event_tags</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L4823"></a><tt class="py-lineno">4823</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="L4824"></a><tt class="py-lineno">4824</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertFalse</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="L4825"></a><tt class="py-lineno">4825</tt>  <tt class="py-line">        <tt id="link-4906" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4906', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4907" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4907', 'feed', 'link-1076');">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="L4826"></a><tt class="py-lineno">4826</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4908" 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-4908', 'assert_event_tags', 'link-4905');">assert_event_tags</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L4827"></a><tt class="py-lineno">4827</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="L4828"></a><tt class="py-lineno">4828</tt>  <tt class="py-line">        <tt id="link-4909" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4909', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4910" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4910', 'feed', 'link-1076');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/child&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L4829"></a><tt class="py-lineno">4829</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4911" 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-4911', 'assert_event_tags', 'link-4905');">assert_event_tags</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L4830"></a><tt class="py-lineno">4830</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="L4831"></a><tt class="py-lineno">4831</tt>  <tt class="py-line">        <tt id="link-4912" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4912', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4913" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4913', 'feed', 'link-1076');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/root&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L4832"></a><tt class="py-lineno">4832</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4914" 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-4914', 'assert_event_tags', 'link-4905');">assert_event_tags</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L4833"></a><tt class="py-lineno">4833</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="L4834"></a><tt class="py-lineno">4834</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertFalse</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="L4835"></a><tt class="py-lineno">4835</tt>  <tt class="py-line">        <tt id="link-4915" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4915', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-4916" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4916', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4917" class="py-name"><a title="lxml.etree.C14NWriterTarget.close
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4896', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4897" 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-4897', 'TreeBuilder', 'link-4897');">TreeBuilder</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L4832"></a><tt class="py-lineno">4832</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt id="link-4898" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4898', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4899" class="py-name"><a title="lxml.etree.HTMLPullParser.read_events
+lxml.etree.XMLPullParser.read_events" class="py-name" href="#" onclick="return doclink('link-4899', 'read_events', 'link-4863');">read_events</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L4833"></a><tt class="py-lineno">4833</tt>  <tt class="py-line"> </tt>
+<a name="L4834"></a><tt class="py-lineno">4834</tt>  <tt class="py-line">        <tt id="link-4900" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4900', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4901" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4901', 'feed', 'link-1073');">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="L4835"></a><tt class="py-lineno">4835</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4902" 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-4902', 'assert_event_tags', 'link-4902');">assert_event_tags</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L4836"></a><tt class="py-lineno">4836</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="L4837"></a><tt class="py-lineno">4837</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertFalse</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="L4838"></a><tt class="py-lineno">4838</tt>  <tt class="py-line">        <tt id="link-4903" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4903', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4904" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4904', 'feed', 'link-1073');">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="L4839"></a><tt class="py-lineno">4839</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4905" 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-4905', 'assert_event_tags', 'link-4902');">assert_event_tags</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L4840"></a><tt class="py-lineno">4840</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="L4841"></a><tt class="py-lineno">4841</tt>  <tt class="py-line">        <tt id="link-4906" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4906', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4907" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4907', 'feed', 'link-1073');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/child&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L4842"></a><tt class="py-lineno">4842</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4908" 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-4908', 'assert_event_tags', 'link-4902');">assert_event_tags</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L4843"></a><tt class="py-lineno">4843</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="L4844"></a><tt class="py-lineno">4844</tt>  <tt class="py-line">        <tt id="link-4909" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4909', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4910" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4910', 'feed', 'link-1073');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/root&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L4845"></a><tt class="py-lineno">4845</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4911" 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-4911', 'assert_event_tags', 'link-4902');">assert_event_tags</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L4846"></a><tt class="py-lineno">4846</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="L4847"></a><tt class="py-lineno">4847</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertFalse</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="L4848"></a><tt class="py-lineno">4848</tt>  <tt class="py-line">        <tt id="link-4912" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4912', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-4913" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4913', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4914" class="py-name"><a title="lxml.etree.C14NWriterTarget.close
 lxml.etree.TreeBuilder.close
 lxml.etree._FeedParser.close
-lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-4917', 'close', 'link-1089');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L4836"></a><tt class="py-lineno">4836</tt>  <tt class="py-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-4918" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4918', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-4919" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-4914', 'close', 'link-1086');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L4849"></a><tt class="py-lineno">4849</tt>  <tt class="py-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-4915" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4915', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-4916" 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-4919', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L4837"></a><tt class="py-lineno">4837</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="L4838"></a><tt class="py-lineno">4838</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="L4839"></a><tt class="py-lineno">4839</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="L4840"></a><tt class="py-lineno">4840</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="L4841"></a><tt class="py-lineno">4841</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-4920" class="py-name" targets="Method lxml.etree.C14NWriterTarget.end()=lxml.etree.C14NWriterTarget-class.html#end,Method lxml.etree.TreeBuilder.end()=lxml.etree.TreeBuilder-class.html#end"><a title="lxml.etree.C14NWriterTarget.end
-lxml.etree.TreeBuilder.end" class="py-name" href="#" onclick="return doclink('link-4920', 'end', 'link-4920');">end</a></tt><tt class="py-op">(</tt><tt id="link-4921" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-4916', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L4850"></a><tt class="py-lineno">4850</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="L4851"></a><tt class="py-lineno">4851</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="L4852"></a><tt class="py-lineno">4852</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="L4853"></a><tt class="py-lineno">4853</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="L4854"></a><tt class="py-lineno">4854</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-4917" class="py-name" targets="Method lxml.etree.C14NWriterTarget.end()=lxml.etree.C14NWriterTarget-class.html#end,Method lxml.etree.TreeBuilder.end()=lxml.etree.TreeBuilder-class.html#end"><a title="lxml.etree.C14NWriterTarget.end
+lxml.etree.TreeBuilder.end" class="py-name" href="#" onclick="return doclink('link-4917', 'end', 'link-4917');">end</a></tt><tt class="py-op">(</tt><tt id="link-4918" 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-4921', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L4842"></a><tt class="py-lineno">4842</tt>  <tt class="py-line">                <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-4922" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-4918', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L4855"></a><tt class="py-lineno">4855</tt>  <tt class="py-line">                <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-4919" 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-4922', 'tag', 'link-73');">tag</a></tt> <tt class="py-op">+=</tt> <tt class="py-string">'-huhu'</tt> </tt>
-<a name="L4843"></a><tt class="py-lineno">4843</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">el</tt> </tt>
-</div></div><a name="L4844"></a><tt class="py-lineno">4844</tt>  <tt class="py-line"> </tt>
-<a name="L4845"></a><tt class="py-lineno">4845</tt>  <tt class="py-line">        <tt id="link-4923" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4923', 'parser', 'link-861');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4924" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-4919', 'tag', 'link-73');">tag</a></tt> <tt class="py-op">+=</tt> <tt class="py-string">'-huhu'</tt> </tt>
+<a name="L4856"></a><tt class="py-lineno">4856</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">el</tt> </tt>
+</div></div><a name="L4857"></a><tt class="py-lineno">4857</tt>  <tt class="py-line"> </tt>
+<a name="L4858"></a><tt class="py-lineno">4858</tt>  <tt class="py-line">        <tt id="link-4920" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4920', 'parser', 'link-858');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4921" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -15208,88 +15204,88 @@ lxml.tests.test_elementtree._C14NTest.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_elementtree._ElementSlicingTest.etree
 lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4924', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4925" class="py-name"><a title="lxml.etree.XMLPullParser" class="py-name" href="#" onclick="return doclink('link-4925', 'XMLPullParser', 'link-4863');">XMLPullParser</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L4846"></a><tt class="py-lineno">4846</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-4926" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-4926', 'target', 'link-727');">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="L4847"></a><tt class="py-lineno">4847</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt id="link-4927" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4927', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4928" class="py-name"><a title="lxml.etree.HTMLPullParser.read_events
-lxml.etree.XMLPullParser.read_events" class="py-name" href="#" onclick="return doclink('link-4928', 'read_events', 'link-4866');">read_events</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L4848"></a><tt class="py-lineno">4848</tt>  <tt class="py-line"> </tt>
-<a name="L4849"></a><tt class="py-lineno">4849</tt>  <tt class="py-line">        <tt id="link-4929" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4929', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4930" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4930', 'feed', 'link-1076');">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="L4850"></a><tt class="py-lineno">4850</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4931" 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-4931', 'assert_event_tags', 'link-4905');">assert_event_tags</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L4851"></a><tt class="py-lineno">4851</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="L4852"></a><tt class="py-lineno">4852</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertFalse</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="L4853"></a><tt class="py-lineno">4853</tt>  <tt class="py-line">        <tt id="link-4932" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4932', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4933" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4933', 'feed', 'link-1076');">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="L4854"></a><tt class="py-lineno">4854</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4934" 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-4934', 'assert_event_tags', 'link-4905');">assert_event_tags</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L4855"></a><tt class="py-lineno">4855</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="L4856"></a><tt class="py-lineno">4856</tt>  <tt class="py-line">        <tt id="link-4935" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4935', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4936" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4936', 'feed', 'link-1076');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/child&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L4857"></a><tt class="py-lineno">4857</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4937" 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-4937', 'assert_event_tags', 'link-4905');">assert_event_tags</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L4858"></a><tt class="py-lineno">4858</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="L4859"></a><tt class="py-lineno">4859</tt>  <tt class="py-line">        <tt id="link-4938" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4938', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4939" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4939', 'feed', 'link-1076');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/root&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L4860"></a><tt class="py-lineno">4860</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4940" 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-4940', 'assert_event_tags', 'link-4905');">assert_event_tags</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L4861"></a><tt class="py-lineno">4861</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="L4862"></a><tt class="py-lineno">4862</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertFalse</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="L4863"></a><tt class="py-lineno">4863</tt>  <tt class="py-line">        <tt id="link-4941" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4941', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-4942" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4942', 'parser', 'link-861');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4943" class="py-name"><a title="lxml.etree.C14NWriterTarget.close
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4921', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-4922" class="py-name"><a title="lxml.etree.XMLPullParser" class="py-name" href="#" onclick="return doclink('link-4922', 'XMLPullParser', 'link-4860');">XMLPullParser</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L4859"></a><tt class="py-lineno">4859</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-4923" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-4923', 'target', 'link-724');">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="L4860"></a><tt class="py-lineno">4860</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt id="link-4924" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4924', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4925" class="py-name"><a title="lxml.etree.HTMLPullParser.read_events
+lxml.etree.XMLPullParser.read_events" class="py-name" href="#" onclick="return doclink('link-4925', 'read_events', 'link-4863');">read_events</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L4861"></a><tt class="py-lineno">4861</tt>  <tt class="py-line"> </tt>
+<a name="L4862"></a><tt class="py-lineno">4862</tt>  <tt class="py-line">        <tt id="link-4926" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4926', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4927" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4927', 'feed', 'link-1073');">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="L4863"></a><tt class="py-lineno">4863</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4928" 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-4928', 'assert_event_tags', 'link-4902');">assert_event_tags</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L4864"></a><tt class="py-lineno">4864</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="L4865"></a><tt class="py-lineno">4865</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertFalse</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="L4866"></a><tt class="py-lineno">4866</tt>  <tt class="py-line">        <tt id="link-4929" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4929', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4930" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4930', 'feed', 'link-1073');">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="L4867"></a><tt class="py-lineno">4867</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4931" 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-4931', 'assert_event_tags', 'link-4902');">assert_event_tags</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L4868"></a><tt class="py-lineno">4868</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="L4869"></a><tt class="py-lineno">4869</tt>  <tt class="py-line">        <tt id="link-4932" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4932', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4933" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4933', 'feed', 'link-1073');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/child&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L4870"></a><tt class="py-lineno">4870</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4934" 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-4934', 'assert_event_tags', 'link-4902');">assert_event_tags</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L4871"></a><tt class="py-lineno">4871</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="L4872"></a><tt class="py-lineno">4872</tt>  <tt class="py-line">        <tt id="link-4935" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4935', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4936" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-4936', 'feed', 'link-1073');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/root&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L4873"></a><tt class="py-lineno">4873</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4937" 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-4937', 'assert_event_tags', 'link-4902');">assert_event_tags</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L4874"></a><tt class="py-lineno">4874</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="L4875"></a><tt class="py-lineno">4875</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertFalse</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="L4876"></a><tt class="py-lineno">4876</tt>  <tt class="py-line">        <tt id="link-4938" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4938', 'root', 'link-247');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-4939" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-4939', 'parser', 'link-858');">parser</a></tt><tt class="py-op">.</tt><tt id="link-4940" class="py-name"><a title="lxml.etree.C14NWriterTarget.close
 lxml.etree.TreeBuilder.close
 lxml.etree._FeedParser.close
-lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-4943', 'close', 'link-1089');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L4864"></a><tt class="py-lineno">4864</tt>  <tt class="py-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-4944" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4944', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-4945" 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-4945', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L4865"></a><tt class="py-lineno">4865</tt>  <tt class="py-line"> </tt>
-<a name="L4866"></a><tt class="py-lineno">4866</tt>  <tt class="py-line"> </tt>
-<a name="test_suite"></a><div id="test_suite-def"><a name="L4867"></a><tt class="py-lineno">4867</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="L4868"></a><tt class="py-lineno">4868</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="L4869"></a><tt class="py-lineno">4869</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-4946" 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-4946', 'ETreeOnlyTestCase', 'link-4946');">ETreeOnlyTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4870"></a><tt class="py-lineno">4870</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-4947" 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-4947', 'ETreeXIncludeTestCase', 'link-4947');">ETreeXIncludeTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4871"></a><tt class="py-lineno">4871</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-4948" 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-4948', 'ElementIncludeTestCase', 'link-4948');">ElementIncludeTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4872"></a><tt class="py-lineno">4872</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-4949" 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-4949', 'ETreeC14NTestCase', 'link-4949');">ETreeC14NTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4873"></a><tt class="py-lineno">4873</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-4950" 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-4950', 'ETreeWriteTestCase', 'link-4950');">ETreeWriteTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4874"></a><tt class="py-lineno">4874</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-4951" 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-4951', 'ETreeErrorLogTest', 'link-4951');">ETreeErrorLogTest</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4875"></a><tt class="py-lineno">4875</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-4952" 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-4952', 'XMLPullParserTest', 'link-4952');">XMLPullParserTest</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4876"></a><tt class="py-lineno">4876</tt>  <tt class="py-line"> </tt>
-<a name="L4877"></a><tt class="py-lineno">4877</tt>  <tt class="py-line">    <tt class="py-comment"># add original doctests from ElementTree selftest modules</tt> </tt>
-<a name="L4878"></a><tt class="py-lineno">4878</tt>  <tt class="py-line">    <tt class="py-keyword">from</tt> <tt class="py-op">.</tt> <tt class="py-keyword">import</tt> <tt id="link-4953" class="py-name" targets="Module lxml.tests.selftest=lxml.tests.selftest-module.html"><a title="lxml.tests.selftest" class="py-name" href="#" onclick="return doclink('link-4953', 'selftest', 'link-4953');">selftest</a></tt><tt class="py-op">,</tt> <tt id="link-4954" class="py-name" targets="Module lxml.tests.selftest2=lxml.tests.selftest2-module.html"><a title="lxml.tests.selftest2" class="py-name" href="#" onclick="return doclink('link-4954', 'selftest2', 'link-4954');">selftest2</a></tt> </tt>
-<a name="L4879"></a><tt class="py-lineno">4879</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-4955" class="py-name"><a title="lxml.tests.selftest" class="py-name" href="#" onclick="return doclink('link-4955', 'selftest', 'link-4953');">selftest</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L4880"></a><tt class="py-lineno">4880</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-4956" class="py-name"><a title="lxml.tests.selftest2" class="py-name" href="#" onclick="return doclink('link-4956', 'selftest2', 'link-4954');">selftest2</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L4881"></a><tt class="py-lineno">4881</tt>  <tt class="py-line"> </tt>
-<a name="L4882"></a><tt class="py-lineno">4882</tt>  <tt class="py-line">    <tt class="py-comment"># add doctests</tt> </tt>
-<a name="L4883"></a><tt class="py-lineno">4883</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-4957" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._C14NTest.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._ElementSlicingTest.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4957', 'etree', 'link-3');">etree</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L4884"></a><tt class="py-lineno">4884</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="L4885"></a><tt class="py-lineno">4885</tt>  <tt class="py-line">        <tt class="py-op">[</tt><tt id="link-4958" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-4958', 'make_doctest', 'link-14');">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="L4886"></a><tt class="py-lineno">4886</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="L4887"></a><tt class="py-lineno">4887</tt>  <tt class="py-line">        <tt class="py-op">[</tt><tt id="link-4959" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-4959', 'make_doctest', 'link-14');">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="L4888"></a><tt class="py-lineno">4888</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="L4889"></a><tt class="py-lineno">4889</tt>  <tt class="py-line">        <tt class="py-op">[</tt><tt id="link-4960" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-4960', 'make_doctest', 'link-14');">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="L4890"></a><tt class="py-lineno">4890</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="L4891"></a><tt class="py-lineno">4891</tt>  <tt class="py-line">        <tt class="py-op">[</tt><tt id="link-4961" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-4961', 'make_doctest', 'link-14');">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="L4892"></a><tt class="py-lineno">4892</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="L4893"></a><tt class="py-lineno">4893</tt>  <tt class="py-line">        <tt class="py-op">[</tt><tt id="link-4962" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-4962', 'make_doctest', 'link-14');">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="L4894"></a><tt class="py-lineno">4894</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">suite</tt> </tt>
-</div><a name="L4895"></a><tt class="py-lineno">4895</tt>  <tt class="py-line"> </tt>
-<a name="L4896"></a><tt class="py-lineno">4896</tt>  <tt class="py-line"> </tt>
-<a name="L4897"></a><tt class="py-lineno">4897</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="L4898"></a><tt class="py-lineno">4898</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="L4899"></a><tt class="py-lineno">4899</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-4940', 'close', 'link-1086');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L4877"></a><tt class="py-lineno">4877</tt>  <tt class="py-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-4941" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-4941', 'root', 'link-247');">root</a></tt><tt class="py-op">.</tt><tt id="link-4942" 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-4942', 'tag', 'link-73');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L4878"></a><tt class="py-lineno">4878</tt>  <tt class="py-line"> </tt>
+<a name="L4879"></a><tt class="py-lineno">4879</tt>  <tt class="py-line"> </tt>
+<a name="test_suite"></a><div id="test_suite-def"><a name="L4880"></a><tt class="py-lineno">4880</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="L4881"></a><tt class="py-lineno">4881</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="L4882"></a><tt class="py-lineno">4882</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-4943" 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-4943', 'ETreeOnlyTestCase', 'link-4943');">ETreeOnlyTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4883"></a><tt class="py-lineno">4883</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-4944" 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-4944', 'ETreeXIncludeTestCase', 'link-4944');">ETreeXIncludeTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4884"></a><tt class="py-lineno">4884</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-4945" 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-4945', 'ElementIncludeTestCase', 'link-4945');">ElementIncludeTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4885"></a><tt class="py-lineno">4885</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-4946" 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-4946', 'ETreeC14NTestCase', 'link-4946');">ETreeC14NTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4886"></a><tt class="py-lineno">4886</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-4947" 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-4947', 'ETreeWriteTestCase', 'link-4947');">ETreeWriteTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4887"></a><tt class="py-lineno">4887</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-4948" 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-4948', 'ETreeErrorLogTest', 'link-4948');">ETreeErrorLogTest</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4888"></a><tt class="py-lineno">4888</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-4949" 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-4949', 'XMLPullParserTest', 'link-4949');">XMLPullParserTest</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4889"></a><tt class="py-lineno">4889</tt>  <tt class="py-line"> </tt>
+<a name="L4890"></a><tt class="py-lineno">4890</tt>  <tt class="py-line">    <tt class="py-comment"># add original doctests from ElementTree selftest modules</tt> </tt>
+<a name="L4891"></a><tt class="py-lineno">4891</tt>  <tt class="py-line">    <tt class="py-keyword">from</tt> <tt class="py-op">.</tt> <tt class="py-keyword">import</tt> <tt id="link-4950" class="py-name" targets="Module lxml.tests.selftest=lxml.tests.selftest-module.html"><a title="lxml.tests.selftest" class="py-name" href="#" onclick="return doclink('link-4950', 'selftest', 'link-4950');">selftest</a></tt><tt class="py-op">,</tt> <tt id="link-4951" class="py-name" targets="Module lxml.tests.selftest2=lxml.tests.selftest2-module.html"><a title="lxml.tests.selftest2" class="py-name" href="#" onclick="return doclink('link-4951', 'selftest2', 'link-4951');">selftest2</a></tt> </tt>
+<a name="L4892"></a><tt class="py-lineno">4892</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-4952" class="py-name"><a title="lxml.tests.selftest" class="py-name" href="#" onclick="return doclink('link-4952', 'selftest', 'link-4950');">selftest</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L4893"></a><tt class="py-lineno">4893</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-4953" class="py-name"><a title="lxml.tests.selftest2" class="py-name" href="#" onclick="return doclink('link-4953', 'selftest2', 'link-4951');">selftest2</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L4894"></a><tt class="py-lineno">4894</tt>  <tt class="py-line"> </tt>
+<a name="L4895"></a><tt class="py-lineno">4895</tt>  <tt class="py-line">    <tt class="py-comment"># add doctests</tt> </tt>
+<a name="L4896"></a><tt class="py-lineno">4896</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-4954" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeElementSlicingTest.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._C14NTest.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._ElementSlicingTest.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-4954', 'etree', 'link-3');">etree</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L4897"></a><tt class="py-lineno">4897</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="L4898"></a><tt class="py-lineno">4898</tt>  <tt class="py-line">        <tt class="py-op">[</tt><tt id="link-4955" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-4955', 'make_doctest', 'link-14');">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="L4899"></a><tt class="py-lineno">4899</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="L4900"></a><tt class="py-lineno">4900</tt>  <tt class="py-line">        <tt class="py-op">[</tt><tt id="link-4956" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-4956', 'make_doctest', 'link-14');">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="L4901"></a><tt class="py-lineno">4901</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="L4902"></a><tt class="py-lineno">4902</tt>  <tt class="py-line">        <tt class="py-op">[</tt><tt id="link-4957" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-4957', 'make_doctest', 'link-14');">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="L4903"></a><tt class="py-lineno">4903</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="L4904"></a><tt class="py-lineno">4904</tt>  <tt class="py-line">        <tt class="py-op">[</tt><tt id="link-4958" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-4958', 'make_doctest', 'link-14');">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="L4905"></a><tt class="py-lineno">4905</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="L4906"></a><tt class="py-lineno">4906</tt>  <tt class="py-line">        <tt class="py-op">[</tt><tt id="link-4959" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-4959', 'make_doctest', 'link-14');">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="L4907"></a><tt class="py-lineno">4907</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">suite</tt> </tt>
+</div><a name="L4908"></a><tt class="py-lineno">4908</tt>  <tt class="py-line"> </tt>
+<a name="L4909"></a><tt class="py-lineno">4909</tt>  <tt class="py-line"> </tt>
+<a name="L4910"></a><tt class="py-lineno">4910</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="L4911"></a><tt class="py-lineno">4911</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="L4912"></a><tt class="py-lineno">4912</tt>  <tt class="py-line"> </tt><script type="text/javascript">
 <!--
 expandto(location.href);
 // -->
@@ -15328,7 +15324,7 @@ expandto(location.href);
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 612ccbd..95e9409 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index bc6d1e2..460a4f5 100644 (file)
@@ -399,7 +399,7 @@ reset the logging setup ...</td>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2f44f60..a7d3cf1 100644 (file)
@@ -4741,7 +4741,7 @@ Tests only for etree, not ElementTree
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 5645697..01e41dc 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 41654c6..dea5c42 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3126c2b..df382b5 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f562af9..3d6d666 100644 (file)
@@ -439,7 +439,7 @@ unittest.case.TestCase --+
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b6b12f2..7b0c5bd 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 10e78d6..ba7fe5c 100644 (file)
@@ -194,7 +194,7 @@ Test cases related to direct loading of external libxml2 documents
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 5bb2863..7d5c093 100644 (file)
@@ -291,7 +291,7 @@ expandto(location.href);
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f2dc86e..6e58903 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 16d424e..0cd6977 100644 (file)
@@ -233,7 +233,7 @@ HTML parser test cases for etree
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 85d82c6..9bc6a6d 100644 (file)
@@ -2264,7 +2264,7 @@ expandto(location.href);
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 23aca87..0a8210e 100644 (file)
@@ -1289,7 +1289,7 @@ h1&gt;&lt;/body&gt;&lt;/html&gt;'"><code class="variable-quote">u'</code><code c
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 396be57..3de770b 100644 (file)
@@ -224,7 +224,7 @@ Web IO test cases (wsgiref)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 095e53d..b5d1073 100644 (file)
@@ -514,7 +514,7 @@ expandto(location.href);
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 56b956e..1f3ee4c 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a828386..c9b05d2 100644 (file)
@@ -266,7 +266,7 @@ Tests for the incremental XML serialisation API.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 98c44de..4bb3134 100644 (file)
@@ -1569,7 +1569,7 @@ expandto(location.href);
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6df557d..655f861 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e82e07c..aeb71e2 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 278671f..e0f2a71 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 0765223..b58602f 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 99e7df0..71eae94 100644 (file)
@@ -242,7 +242,7 @@ object --+
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f9a52e8..5a6d663 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 846e980..9465c9c 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index cdb240e..0b23a16 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6f97a30..d0efc51 100644 (file)
@@ -195,7 +195,7 @@ IO test cases that apply to both etree and ElementTree
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 35bbafc..208bcdb 100644 (file)
@@ -1098,7 +1098,7 @@ expandto(location.href);
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4b4b2ec..cafb0a4 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 0a4728c..ee7c157 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 037b6e6..872f580 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 77cdbb7..a56a649 100644 (file)
@@ -224,7 +224,7 @@ Test cases related to ISO-Schematron parsing and validation
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index edca74d..1d431ec 100644 (file)
@@ -1690,7 +1690,7 @@ expandto(location.href);
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 0926e0e..82a6d1c 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 1ed11d5..80ad208 100644 (file)
@@ -225,7 +225,7 @@ namespace registry mechanism
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 1fd72c9..4526ab5 100644 (file)
@@ -656,7 +656,7 @@ expandto(location.href);
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4ad43f8..fbbc458 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 64d8efd..3af8d24 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ddadec1..3267bc0 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 1434ffa..844f43f 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3622739..731e7da 100644 (file)
@@ -203,15 +203,15 @@ Tests specific to the lxml.objectify API
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a href="lxml.tests.test_objectify-module.html#objectclass2xsitype" class="summary-name">objectclass2xsitype</a> = <code title="{&lt;type 'lxml.objectify.BoolElement'&gt;: ('boolean'),
&lt;type 'lxml.objectify.StringElement'&gt;: ('string',
-                                         'normalizedString',
-                                         'token',
-                                         'language',
-                                         'Name',
-                                         'NCName',
-                                         'ID',
-..."><code class="variable-group">{</code>&lt;type 'lxml.objectify.BoolElement'&gt;<code class="variable-op">: </code><code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-ellipsis">...</code></code>
+        <a href="lxml.tests.test_objectify-module.html#objectclass2xsitype" class="summary-name">objectclass2xsitype</a> = <code title="{&lt;type 'lxml.objectify.IntElement'&gt;: ('int',
                                     'short',
+                                      'byte',
+                                      'unsignedShort',
+                                      'unsignedByte',
+                                      'integer',
+                                      'nonPositiveInteger',
+                                      'negativeInteger',
+..."><code class="variable-group">{</code>&lt;type 'lxml.objectify.IntElement'&gt;<code class="variable-op">: </code><code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">i</code><code class="variable-ellipsis">...</code></code>
     </td>
   </tr>
 <tr>
@@ -233,10 +233,10 @@ Tests specific to the lxml.objectify API
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a href="lxml.tests.test_objectify-module.html#objectclass2pytype" class="summary-name">objectclass2pytype</a> = <code title="{&lt;type 'lxml.objectify.BoolElement'&gt;: 'bool',
- &lt;type 'lxml.objectify.StringElement'&gt;: 'str',
+        <a href="lxml.tests.test_objectify-module.html#objectclass2pytype" class="summary-name">objectclass2pytype</a> = <code title="{&lt;type 'lxml.objectify.IntElement'&gt;: 'int',
  &lt;type 'lxml.objectify.FloatElement'&gt;: 'float',
- &lt;type 'lxml.objectify.IntElement'&gt;: 'int'}"><code class="variable-group">{</code>&lt;type 'lxml.objectify.BoolElement'&gt;<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">bo</code><code class="variable-ellipsis">...</code></code>
+ &lt;type 'lxml.objectify.StringElement'&gt;: 'str',
+ &lt;type 'lxml.objectify.BoolElement'&gt;: 'bool'}"><code class="variable-group">{</code>&lt;type 'lxml.objectify.IntElement'&gt;<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">int</code><code class="variable-ellipsis">...</code></code>
     </td>
   </tr>
 <tr>
@@ -401,14 +401,14 @@ Tests specific to the lxml.objectify API
   <dl class="fields">
     <dt>Value:</dt>
       <dd><table><tr><td><pre class="variable">
-<code class="variable-group">{</code>&lt;type 'lxml.objectify.BoolElement'&gt;<code class="variable-op">: </code><code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">boolean</code><code class="variable-quote">'</code><code class="variable-group">)</code><code class="variable-op">,</code>
&lt;type 'lxml.objectify.StringElement'&gt;<code class="variable-op">: </code><code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">string</code><code class="variable-quote">'</code><code class="variable-op">,</code>
-                                         <code class="variable-quote">'</code><code class="variable-string">normalizedString</code><code class="variable-quote">'</code><code class="variable-op">,</code>
-                                         <code class="variable-quote">'</code><code class="variable-string">token</code><code class="variable-quote">'</code><code class="variable-op">,</code>
-                                         <code class="variable-quote">'</code><code class="variable-string">language</code><code class="variable-quote">'</code><code class="variable-op">,</code>
-                                         <code class="variable-quote">'</code><code class="variable-string">Name</code><code class="variable-quote">'</code><code class="variable-op">,</code>
-                                         <code class="variable-quote">'</code><code class="variable-string">NCName</code><code class="variable-quote">'</code><code class="variable-op">,</code>
-                                         <code class="variable-quote">'</code><code class="variable-string">ID</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+<code class="variable-group">{</code>&lt;type 'lxml.objectify.IntElement'&gt;<code class="variable-op">: </code><code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">int</code><code class="variable-quote">'</code><code class="variable-op">,</code>
                                     <code class="variable-quote">'</code><code class="variable-string">short</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+                                      <code class="variable-quote">'</code><code class="variable-string">byte</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+                                      <code class="variable-quote">'</code><code class="variable-string">unsignedShort</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+                                      <code class="variable-quote">'</code><code class="variable-string">unsignedByte</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+                                      <code class="variable-quote">'</code><code class="variable-string">integer</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+                                      <code class="variable-quote">'</code><code class="variable-string">nonPositiveInteger</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+                                      <code class="variable-quote">'</code><code class="variable-string">negativeInteger</code><code class="variable-quote">'</code><code class="variable-op">,</code>
 <code class="variable-ellipsis">...</code>
 </pre></td></tr></table>
 </dd>
@@ -453,10 +453,10 @@ Tests specific to the lxml.objectify API
   <dl class="fields">
     <dt>Value:</dt>
       <dd><table><tr><td><pre class="variable">
-<code class="variable-group">{</code>&lt;type 'lxml.objectify.BoolElement'&gt;<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">bool</code><code class="variable-quote">'</code><code class="variable-op">,</code>
- &lt;type 'lxml.objectify.StringElement'&gt;<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">str</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+<code class="variable-group">{</code>&lt;type 'lxml.objectify.IntElement'&gt;<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">int</code><code class="variable-quote">'</code><code class="variable-op">,</code>
  &lt;type 'lxml.objectify.FloatElement'&gt;<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">float</code><code class="variable-quote">'</code><code class="variable-op">,</code>
- &lt;type 'lxml.objectify.IntElement'&gt;<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">int</code><code class="variable-quote">'</code><code class="variable-group">}</code>
+ &lt;type 'lxml.objectify.StringElement'&gt;<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">str</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ &lt;type 'lxml.objectify.BoolElement'&gt;<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">bool</code><code class="variable-quote">'</code><code class="variable-group">}</code>
 </pre></td></tr></table>
 </dd>
   </dl>
@@ -542,7 +542,7 @@ Tests specific to the lxml.objectify API
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d29ebf6..d063884 100644 (file)
@@ -6165,7 +6165,7 @@ expandto(location.href);
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9bd9f91..e7203fe 100644 (file)
@@ -3666,7 +3666,7 @@ Test cases for lxml.objectify
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 71257f2..272469a 100644 (file)
@@ -266,7 +266,7 @@ Tests specific to the Python based class lookup.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 484334a..8b96863 100644 (file)
@@ -922,7 +922,7 @@ expandto(location.href);
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index fdeb5d0..9a0b27a 100644 (file)
@@ -871,7 +871,7 @@ Test cases for the lxml.pyclasslookup class lookup mechanism.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 80d32aa..79a48db 100644 (file)
@@ -239,7 +239,7 @@ Test cases related to RelaxNG parsing and validation
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6666657..b9fed3d 100644 (file)
@@ -806,7 +806,7 @@ expandto(location.href);
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ca28dc5..22980d2 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 675ef81..4736902 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6b2f0cd..ae48877 100644 (file)
@@ -240,7 +240,7 @@ Test cases related to SAX I/O
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3758e42..d7c7291 100644 (file)
@@ -1003,7 +1003,7 @@ expandto(location.href);
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4a2c78c..e5bf225 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e034708..2171204 100644 (file)
@@ -390,7 +390,7 @@ Testing that namespaces generate the right SAX events
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 0047053..f512971 100644 (file)
@@ -814,7 +814,7 @@ properties.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index bd8050b..ef539c3 100644 (file)
@@ -224,7 +224,7 @@ Test cases related to Schematron parsing and validation
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4775418..3addd77 100644 (file)
@@ -381,7 +381,7 @@ expandto(location.href);
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 88fd57f..0692ff1 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 81767c7..1dbbec5 100644 (file)
@@ -233,7 +233,7 @@ Tests for thread usage in lxml.etree.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ee80e89..ed0d5bd 100644 (file)
@@ -1557,7 +1557,7 @@ expandto(location.href);
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2eb164f..481b8ed 100644 (file)
@@ -522,7 +522,7 @@ Threading tests based on a thread worker pipeline.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 472fcef..18cbc0a 100644 (file)
         <tr>
           <td><span class="summary-sig"><a href="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker-class.html#handle" class="summary-sig-name">handle</a>(<span class="summary-sig-arg">self</span>,
         <span class="summary-sig-arg">element</span>,
-        <span class="summary-sig-arg">_fromstring</span>=<span class="summary-sig-default">&lt;cyfunction fromstring at 0x7f32ddcfc1d0&gt;</span>)</span></td>
+        <span class="summary-sig-arg">_fromstring</span>=<span class="summary-sig-default">&lt;cyfunction fromstring at 0x7f1f389801d0&gt;</span>)</span></td>
           <td align="right" valign="top">
             <span class="codelink"><a href="lxml.tests.test_threading-pysrc.html#ThreadPipelineTestCase.ParseAndExtendWorker.handle">source&nbsp;code</a></span>
             
   <tr valign="top"><td>
   <h3 class="epydoc"><span class="sig"><span class="sig-name">handle</span>(<span class="sig-arg">self</span>,
         <span class="sig-arg">element</span>,
-        <span class="sig-arg">_fromstring</span>=<span class="sig-default">&lt;cyfunction fromstring at 0x7f32ddcfc1d0&gt;</span>)</span>
+        <span class="sig-arg">_fromstring</span>=<span class="sig-default">&lt;cyfunction fromstring at 0x7f1f389801d0&gt;</span>)</span>
   </h3>
   </td><td align="right" valign="top"
     ><span class="codelink"><a href="lxml.tests.test_threading-pysrc.html#ThreadPipelineTestCase.ParseAndExtendWorker.handle">source&nbsp;code</a></span>&nbsp;
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 49210b5..baeafac 100644 (file)
         <tr>
           <td><span class="summary-sig"><a href="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndInjectWorker-class.html#handle" class="summary-sig-name">handle</a>(<span class="summary-sig-arg">self</span>,
         <span class="summary-sig-arg">element</span>,
-        <span class="summary-sig-arg">_fromstring</span>=<span class="summary-sig-default">&lt;cyfunction fromstring at 0x7f32ddcfc1d0&gt;</span>)</span></td>
+        <span class="summary-sig-arg">_fromstring</span>=<span class="summary-sig-default">&lt;cyfunction fromstring at 0x7f1f389801d0&gt;</span>)</span></td>
           <td align="right" valign="top">
             <span class="codelink"><a href="lxml.tests.test_threading-pysrc.html#ThreadPipelineTestCase.ParseAndInjectWorker.handle">source&nbsp;code</a></span>
             
   <tr valign="top"><td>
   <h3 class="epydoc"><span class="sig"><span class="sig-name">handle</span>(<span class="sig-arg">self</span>,
         <span class="sig-arg">element</span>,
-        <span class="sig-arg">_fromstring</span>=<span class="sig-default">&lt;cyfunction fromstring at 0x7f32ddcfc1d0&gt;</span>)</span>
+        <span class="sig-arg">_fromstring</span>=<span class="sig-default">&lt;cyfunction fromstring at 0x7f1f389801d0&gt;</span>)</span>
   </h3>
   </td><td align="right" valign="top"
     ><span class="codelink"><a href="lxml.tests.test_threading-pysrc.html#ThreadPipelineTestCase.ParseAndInjectWorker.handle">source&nbsp;code</a></span>&nbsp;
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 32cce31..f8cf3a3 100644 (file)
         <tr>
           <td><span class="summary-sig"><a href="lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker-class.html#handle" class="summary-sig-name">handle</a>(<span class="summary-sig-arg">self</span>,
         <span class="summary-sig-arg">xml</span>,
-        <span class="summary-sig-arg">_fromstring</span>=<span class="summary-sig-default">&lt;cyfunction fromstring at 0x7f32ddcfc1d0&gt;</span>)</span></td>
+        <span class="summary-sig-arg">_fromstring</span>=<span class="summary-sig-default">&lt;cyfunction fromstring at 0x7f1f389801d0&gt;</span>)</span></td>
           <td align="right" valign="top">
             <span class="codelink"><a href="lxml.tests.test_threading-pysrc.html#ThreadPipelineTestCase.ParseWorker.handle">source&nbsp;code</a></span>
             
   <tr valign="top"><td>
   <h3 class="epydoc"><span class="sig"><span class="sig-name">handle</span>(<span class="sig-arg">self</span>,
         <span class="sig-arg">xml</span>,
-        <span class="sig-arg">_fromstring</span>=<span class="sig-default">&lt;cyfunction fromstring at 0x7f32ddcfc1d0&gt;</span>)</span>
+        <span class="sig-arg">_fromstring</span>=<span class="sig-default">&lt;cyfunction fromstring at 0x7f1f389801d0&gt;</span>)</span>
   </h3>
   </td><td align="right" valign="top"
     ><span class="codelink"><a href="lxml.tests.test_threading-pysrc.html#ThreadPipelineTestCase.ParseWorker.handle">source&nbsp;code</a></span>&nbsp;
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9a7572f..ab57ae7 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ef39cf0..de22ed8 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ec74237..0228885 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2d7f7fe..0e52a74 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 55a028e..c620566 100644 (file)
@@ -339,7 +339,7 @@ from the args and kwargs arguments, respectively.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d64536b..deb0aa8 100644 (file)
@@ -595,7 +595,7 @@ Threading tests
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b7ffd59..479a1c0 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8c8ed01..fb836ee 100644 (file)
@@ -770,7 +770,7 @@ expandto(location.href);
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index fadb003..edf2a13 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9405a73..8ba45b4 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ca0fc3c..062646f 100644 (file)
@@ -231,7 +231,7 @@ Test cases related to XML Schema parsing and validation
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 0910310..6ca3227 100644 (file)
@@ -1600,7 +1600,7 @@ expandto(location.href);
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3b65617..a035afc 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 74788fa..cdebd14 100644 (file)
@@ -285,7 +285,7 @@ opaque context object.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c42c0e5..f08aa77 100644 (file)
@@ -711,7 +711,7 @@ it wasn't bogus.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index fca5806..0debd6c 100644 (file)
@@ -525,7 +525,7 @@ Test cases related to XPath evaluation and the XPath class
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index de322b0..864af98 100644 (file)
@@ -2207,7 +2207,7 @@ expandto(location.href);
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 69f34f0..6ccef86 100644 (file)
@@ -357,7 +357,7 @@ Tests for the ETXPath class
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9b9979a..8057d67 100644 (file)
@@ -405,7 +405,7 @@ Tests for the XPath class
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 1061272..dabebfc 100644 (file)
@@ -407,7 +407,7 @@ Tests for the EXSLT support in XPath (requires libxslt 1.1.25+)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 1a2a2d1..7d36173 100644 (file)
@@ -1029,7 +1029,7 @@ XPath tests etree
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d9e7bee..833f3c4 100644 (file)
@@ -280,7 +280,7 @@ Test cases related to XSLT processing
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6b60778..f7cc008 100644 (file)
@@ -5124,7 +5124,7 @@ expandto(location.href);
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 993fb5a..cbd9556 100644 (file)
@@ -501,7 +501,7 @@ EXSLT tests
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4f71128..a2e4bf0 100644 (file)
@@ -597,7 +597,7 @@ Tests for extension elements in XSLT.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 792416d..e5c5e5b 100644 (file)
@@ -405,7 +405,7 @@ Tests for XPath extension functions in XSLT.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 0ac52d2..875dd0d 100644 (file)
@@ -1345,7 +1345,7 @@ XSLT tests etree
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 55bc602..32b42e5 100644 (file)
@@ -380,7 +380,7 @@ XSLT tests for etree under Python 3
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 79bd536..108b681 100644 (file)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index da090a7..1ac92b5 100644 (file)
@@ -113,7 +113,7 @@ expandto(location.href);
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index cef8756..f60e2ae 100644 (file)
@@ -364,7 +364,7 @@ contains some hooks for decoding encoded and multipart messages.
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d1dfe3b..3da903f 100644 (file)
@@ -160,7 +160,7 @@ namespace registry mechanism</em>    </li>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 651f95f..fc13849 100644 (file)
@@ -1629,7 +1629,7 @@ arguments start and end are interpreted as in slice notation.</p>
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7b0b690..c25fc3b 100644 (file)
@@ -791,7 +791,7 @@ hash(x)
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9bceccb..78145b2 100644 (file)
@@ -3224,7 +3224,7 @@ expandto(location.href);
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f9f65f8..0c0b652 100644 (file)
@@ -730,7 +730,7 @@ object --+
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index daf0fd8..b42441f 100644 (file)
@@ -424,7 +424,7 @@ object --+
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ba6c3ee..e93b955 100644 (file)
@@ -193,7 +193,7 @@ exceptions.BaseException --+
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4f70eb7..788e85d 100644 (file)
@@ -325,7 +325,7 @@ object --+
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f344673..f490530 100644 (file)
@@ -310,7 +310,7 @@ object --+
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 25da377..ac5f729 100644 (file)
@@ -476,7 +476,7 @@ object --+
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8aac195..459b647 100644 (file)
@@ -264,7 +264,7 @@ object --+
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c1e443b..d098676 100644 (file)
@@ -242,7 +242,7 @@ object --+
   <tr>
     <td align="left" class="footer">
     Generated by Epydoc 3.0.1
-    on Sat Jul 27 12:35:58 2019
+    on Sun Aug 11 08:28:51 2019
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 97eae4b..80b84c6 100644 (file)
@@ -24,7 +24,7 @@ function hide_menu() {
 </script><meta content="width=device-width, initial-scale=1" name="viewport" /></head>
 <body onclick="hide_menu()">
 <div class="document" id="how-to-build-lxml-from-source">
-<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><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#where-to-get-it">Where to get it</a></li><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-dev-sources">Building lxml from dev 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#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on 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></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#passing-generated-trees-through-python">Passing generated trees through Python</a></li><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 4 4 0-menu"><li class="menu title"><a href="changes-4.4.0.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="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">How to build lxml from source</h1>
+<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><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#where-to-get-it">Where to get it</a></li><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-dev-sources">Building lxml from dev 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#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on 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></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#passing-generated-trees-through-python">Passing generated trees through Python</a></li><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 4 4 1-menu"><li class="menu title"><a href="changes-4.4.1.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="/sitemap.html">Sitemap</a></li></ul></div></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
@@ -317,7 +317,7 @@ installed using <tt class="docutils literal">dpkg <span class="pre">-i</span></t
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2019-07-27.
+Generated on: 2019-08-11.
 
 </div>
 </body>
index 713b0b4..bf79c0d 100644 (file)
@@ -24,7 +24,7 @@ function hide_menu() {
 </script><meta content="width=device-width, initial-scale=1" name="viewport" /></head>
 <body onclick="hide_menu()">
 <div class="document" id="the-public-c-api-of-lxml-etree">
-<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><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#where-to-get-it">Where to get it</a></li><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-dev-sources">Building lxml from dev 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#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on 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></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#passing-generated-trees-through-python">Passing generated trees through Python</a></li><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 4 4 0-menu"><li class="menu title"><a href="changes-4.4.0.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="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">The public C-API of lxml.etree</h1>
+<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><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#where-to-get-it">Where to get it</a></li><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-dev-sources">Building lxml from dev 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#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on 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></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#passing-generated-trees-through-python">Passing generated trees through Python</a></li><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 4 4 1-menu"><li class="menu title"><a href="changes-4.4.1.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="/sitemap.html">Sitemap</a></li></ul></div></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,
@@ -127,7 +127,7 @@ includes may not be sufficient.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2019-07-27.
+Generated on: 2019-08-11.
 
 </div>
 </body>
similarity index 99%
rename from doc/html/changes-4.4.0.html
rename to doc/html/changes-4.4.1.html
index 5b69bef..5600977 100644 (file)
 <h1 class="title">lxml changelog</h1>
 
 <div class="section" id="id1">
+<h1>4.4.1 (2019-08-11)</h1>
+<div class="section" id="bugs-fixed">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1838252">LP#1838252</a>: The order of an OrderedDict was lost in 4.4.0 when passing it as
+attrib mapping during element creation.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1838521">LP#1838521</a>: The package metadata now lists the supported Python versions.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id2">
 <h1>4.4.0 (2019-07-27)</h1>
 <div class="section" id="features-added">
 <h2>Features added</h2>
@@ -39,7 +50,7 @@ tree when set to false.</li>
 a <tt class="docutils literal">c14n2</tt> serialisation method.</li>
 </ul>
 </div>
-<div class="section" id="bugs-fixed">
+<div class="section" id="id3">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>When writing to file paths that contain the URL escape character '%', the file
@@ -82,61 +93,61 @@ in a future release.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id2">
+<div class="section" id="id4">
 <h1>4.3.5 (2019-07-27)</h1>
 <ul class="simple">
 <li>Rebuilt with Cython 0.29.13 to support Python 3.8.</li>
 </ul>
 </div>
-<div class="section" id="id3">
+<div class="section" id="id5">
 <h1>4.3.4 (2019-06-10)</h1>
 <ul class="simple">
 <li>Rebuilt with Cython 0.29.10 to support Python 3.8.</li>
 </ul>
 </div>
-<div class="section" id="id4">
+<div class="section" id="id6">
 <h1>4.3.3 (2019-03-26)</h1>
-<div class="section" id="id5">
+<div class="section" id="id7">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Fix leak of output buffer and unclosed files in <tt class="docutils literal">_XSLTResultTree.write_output()</tt>.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id6">
+<div class="section" id="id8">
 <h1>4.3.2 (2019-02-29)</h1>
-<div class="section" id="id7">
+<div class="section" id="id9">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Crash in 4.3.1 when appending a child subtree with certain text nodes.</li>
 </ul>
 </div>
-<div class="section" id="id8">
+<div class="section" id="id10">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>Built with Cython 0.29.6.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id9">
+<div class="section" id="id11">
 <h1>4.3.1 (2019-02-08)</h1>
-<div class="section" id="id10">
+<div class="section" id="id12">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1814522">LP#1814522</a>: Crash when appending a child subtree that contains unsubstituted
 entity references.</li>
 </ul>
 </div>
-<div class="section" id="id11">
+<div class="section" id="id13">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>Built with Cython 0.29.5.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id12">
+<div class="section" id="id14">
 <h1>4.3.0 (2019-01-04)</h1>
-<div class="section" id="id13">
+<div class="section" id="id15">
 <h2>Features added</h2>
 <ul class="simple">
 <li>The module <tt class="docutils literal">lxml.sax</tt> is compiled using Cython in order to speed it up.</li>
@@ -147,7 +158,7 @@ is used.  Patch by Lennart Regebro.</li>
 and the corresponding schema to the 2016 version (with optional &quot;properties&quot;).</li>
 </ul>
 </div>
-<div class="section" id="id14">
+<div class="section" id="id16">
 <h2>Other changes</h2>
 <ul class="simple">
 <li><a class="reference external" href="https://github.com/lxml/lxml/issues/270">GH#270</a>, <a class="reference external" href="https://github.com/lxml/lxml/issues/271">GH#271</a>: Support for Python 2.6 and 3.3 was removed.
@@ -158,9 +169,9 @@ which were released in 2014 and 2012 respectively.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id15">
+<div class="section" id="id17">
 <h1>4.2.6 (2019-01-02)</h1>
-<div class="section" id="id16">
+<div class="section" id="id18">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1799755">LP#1799755</a>: Fix a DeprecationWarning in Py3.7+.</li>
@@ -168,9 +179,9 @@ which were released in 2014 and 2012 respectively.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id17">
+<div class="section" id="id19">
 <h1>4.2.5 (2018-09-09)</h1>
-<div class="section" id="id18">
+<div class="section" id="id20">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Javascript URLs that used URL escaping were not removed by the HTML cleaner.
@@ -178,16 +189,16 @@ Security problem found by Omar Eissa.  (CVE-2018-19787)</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id19">
+<div class="section" id="id21">
 <h1>4.2.4 (2018-08-03)</h1>
-<div class="section" id="id20">
+<div class="section" id="id22">
 <h2>Features added</h2>
 <ul class="simple">
 <li><a class="reference external" href="https://github.com/lxml/lxml/issues/259">GH#259</a>: Allow using <tt class="docutils literal"><span class="pre">pkg-config</span></tt> for build configuration.
 Patch by Patrick Griffis.</li>
 </ul>
 </div>
-<div class="section" id="id21">
+<div class="section" id="id23">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1773749">LP#1773749</a>, <a class="reference external" href="https://github.com/lxml/lxml/issues/268">GH#268</a>: Crash when moving an element to another document with
@@ -196,18 +207,18 @@ Patch by Alexander Weggerle.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id22">
+<div class="section" id="id24">
 <h1>4.2.3 (2018-06-27)</h1>
-<div class="section" id="id23">
+<div class="section" id="id25">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Reverted <a class="reference external" href="https://github.com/lxml/lxml/issues/265">GH#265</a>: lxml links against zlib as a shared library again.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id24">
+<div class="section" id="id26">
 <h1>4.2.2 (2018-06-22)</h1>
-<div class="section" id="id25">
+<div class="section" id="id27">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li><a class="reference external" href="https://github.com/lxml/lxml/issues/266">GH#266</a>: Fix sporadic crash during GC when parse-time schema validation is used
@@ -218,9 +229,9 @@ Patch by Nehal J Wani.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id27">
+<div class="section" id="id29">
 <h1>4.2.1 (2018-03-21)</h1>
-<div class="section" id="id28">
+<div class="section" id="id30">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1755825">LP#1755825</a>: <tt class="docutils literal">iterwalk()</tt> failed to return the 'start' event for the initial
@@ -230,9 +241,9 @@ element if a tag selector is used.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id29">
+<div class="section" id="id31">
 <h1>4.2.0 (2018-03-13)</h1>
-<div class="section" id="id30">
+<div class="section" id="id32">
 <h2>Features added</h2>
 <ul class="simple">
 <li><a class="reference external" href="https://github.com/lxml/lxml/issues/255">GH#255</a>: <tt class="docutils literal">SelectElement.value</tt> returns more standard-compliant and
@@ -245,7 +256,7 @@ first one).  If no options are present (not standard-compliant)
 Patch by stranac.</li>
 </ul>
 </div>
-<div class="section" id="id31">
+<div class="section" id="id33">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1551797">LP#1551797</a>: Some XSLT messages were not captured by the transform error log.</li>
@@ -253,19 +264,19 @@ Patch by stranac.</li>
 validation.</li>
 </ul>
 </div>
-<div class="section" id="id32">
+<div class="section" id="id34">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id33">
+<div class="section" id="id35">
 <h1>4.1.1 (2017-11-04)</h1>
 <ul class="simple">
 <li>Rebuild with Cython 0.27.3 to improve support for Py3.7.</li>
 </ul>
 </div>
-<div class="section" id="id34">
+<div class="section" id="id36">
 <h1>4.1.0 (2017-10-13)</h1>
-<div class="section" id="id35">
+<div class="section" id="id37">
 <h2>Features added</h2>
 <ul class="simple">
 <li>ElementPath supports text predicates for current node, like &quot;[.='text']&quot;.</li>
@@ -277,7 +288,7 @@ This should have a beneficial impact on the overall performance by providing
 a tighter compiler integration between lxml and libxml2/libxslt.</li>
 </ul>
 </div>
-<div class="section" id="id36">
+<div class="section" id="id38">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1722776">LP#1722776</a>: Requesting non-Element objects like comments from a document with
@@ -285,9 +296,9 @@ a tighter compiler integration between lxml and libxml2/libxslt.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id37">
+<div class="section" id="id39">
 <h1>4.0.0 (2017-09-17)</h1>
-<div class="section" id="id38">
+<div class="section" id="id40">
 <h2>Features added</h2>
 <ul class="simple">
 <li>The ElementPath implementation is now compiled using Cython,
@@ -303,7 +314,7 @@ allow relative resource lookups.</li>
 output data into a file according to the <tt class="docutils literal">&lt;xsl:output&gt;</tt> configuration.</li>
 </ul>
 </div>
-<div class="section" id="id39">
+<div class="section" id="id41">
 <h2>Bugs fixed</h2>
 <ul>
 <li><p class="first"><a class="reference external" href="https://github.com/lxml/lxml/issues/251">GH#251</a>: HTML comments were handled incorrectly by the soupparser.
@@ -336,7 +347,7 @@ to output end tags even after writing failed with an exception.</p>
 </li>
 </ul>
 </div>
-<div class="section" id="id40">
+<div class="section" id="id42">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>The main module source files were renamed from <tt class="docutils literal"><span class="pre">lxml.*.pyx</span></tt> to plain
@@ -347,9 +358,9 @@ be worth validating that third-party code does not notice this change.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id41">
+<div class="section" id="id43">
 <h1>3.8.0 (2017-06-03)</h1>
-<div class="section" id="id42">
+<div class="section" id="id44">
 <h2>Features added</h2>
 <ul class="simple">
 <li><tt class="docutils literal">ElementTree.write()</tt> has a new option <tt class="docutils literal">doctype</tt> that writes out a
@@ -365,7 +376,7 @@ responsible for the error. Patch by Bob Kline.</li>
 a default namespace when passing a None prefix.</li>
 </ul>
 </div>
-<div class="section" id="id43">
+<div class="section" id="id45">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li><a class="reference external" href="https://github.com/lxml/lxml/issues/238">GH#238</a>: Character escapes were not hex-encoded in the <tt class="docutils literal">xmlfile</tt> serialiser.
@@ -379,7 +390,7 @@ multi-threaded XSLT processing.</li>
 <li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1673355">LP#1673355</a>, <a class="reference external" href="https://github.com/lxml/lxml/issues/233">GH#233</a>: <tt class="docutils literal">fromstring()</tt> html5parser failed to parse byte strings.</li>
 </ul>
 </div>
-<div class="section" id="id45">
+<div class="section" id="id47">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>The previously undocumented <tt class="docutils literal">docstring</tt> option in <tt class="docutils literal">ElementTree.write()</tt>
@@ -387,9 +398,9 @@ produces a deprecation warning and will eventually be removed.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id46">
+<div class="section" id="id48">
 <h1>3.7.4 (2017-??-??)</h1>
-<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/1551797">LP#1551797</a>: revert previous fix for XSLT error logging as it breaks
@@ -398,9 +409,9 @@ multi-threaded XSLT processing.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id51">
+<div class="section" id="id53">
 <h1>3.7.3 (2017-02-18)</h1>
-<div class="section" id="id52">
+<div class="section" id="id54">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li><a class="reference external" href="https://github.com/lxml/lxml/issues/218">GH#218</a> was ineffective in Python 3.</li>
@@ -409,13 +420,13 @@ Patch by Jakub Wilk.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id53">
+<div class="section" id="id55">
 <h1>3.7.2 (2017-01-08)</h1>
 <ul class="simple">
 <li><a class="reference external" href="https://github.com/lxml/lxml/issues/220">GH#220</a>: <tt class="docutils literal">xmlfile</tt> allows switching output methods at an element level.
 Patch by Burak Arslan.</li>
 </ul>
-<div class="section" id="id55">
+<div class="section" id="id57">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Work around installation problems in recent Python 2.7 versions
@@ -427,16 +438,16 @@ script/style tags.  Patch by Burak Arslan.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id57">
+<div class="section" id="id59">
 <h1>3.7.1 (2016-12-23)</h1>
 <ul class="simple">
 <li>No source changes, issued only to solve problems with the
 binary packages released for 3.7.0.</li>
 </ul>
 </div>
-<div class="section" id="id58">
+<div class="section" id="id60">
 <h1>3.7.0 (2016-12-10)</h1>
-<div class="section" id="id59">
+<div class="section" id="id61">
 <h2>Features added</h2>
 <ul class="simple">
 <li><a class="reference external" href="https://github.com/lxml/lxml/issues/217">GH#217</a>: <tt class="docutils literal">XMLSyntaxError</tt> now behaves more like its <tt class="docutils literal">SyntaxError</tt>
@@ -454,14 +465,14 @@ serialises like <tt class="docutils literal">&lt;div <span class="pre">attrname&
 marked as <tt class="docutils literal">disabled</tt> in HTML.  Patch by Kristian Klemon.</li>
 </ul>
 </div>
-<div class="section" id="id60">
+<div class="section" id="id62">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li><a class="reference external" href="https://github.com/lxml/lxml/issues/206">GH#206</a>: File name and line number were missing from XSLT error messages.
 Patch by Marcus Brinkmann.</li>
 </ul>
 </div>
-<div class="section" id="id61">
+<div class="section" id="id63">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>Log entries no longer allow anything but plain string objects as message text
@@ -470,27 +481,27 @@ and file name.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id62">
+<div class="section" id="id64">
 <h1>3.6.4 (2016-08-20)</h1>
 <ul class="simple">
 <li><a class="reference external" href="https://github.com/lxml/lxml/issues/204">GH#204</a>, <a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1614693">LP#1614693</a>: build fix for MacOS-X.</li>
 </ul>
 </div>
-<div class="section" id="id63">
+<div class="section" id="id65">
 <h1>3.6.3 (2016-08-18)</h1>
 <ul class="simple">
 <li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1614603">LP#1614603</a>: change linker flags to build multi-linux wheels</li>
 </ul>
 </div>
-<div class="section" id="id64">
+<div class="section" id="id66">
 <h1>3.6.2 (2016-08-18)</h1>
 <ul class="simple">
 <li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1614603">LP#1614603</a>: release without source changes to provide cleanly built Linux wheels</li>
 </ul>
 </div>
-<div class="section" id="id66">
+<div class="section" id="id68">
 <h1>3.6.1 (2016-07-24)</h1>
-<div class="section" id="id67">
+<div class="section" id="id69">
 <h2>Features added</h2>
 <ul class="simple">
 <li><a class="reference external" href="https://github.com/lxml/lxml/issues/180">GH#180</a>: Separate option <tt class="docutils literal">inline_style</tt> for Cleaner that only removes <tt class="docutils literal">style</tt>
@@ -498,7 +509,7 @@ attributes instead of all styles.  Patch by Christian Pedersen.</li>
 <li><a class="reference external" href="https://github.com/lxml/lxml/issues/196">GH#196</a>: Windows build support for Python 3.5.  Contribution by Maximilian Hils.</li>
 </ul>
 </div>
-<div class="section" id="id68">
+<div class="section" id="id70">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li><a class="reference external" href="https://github.com/lxml/lxml/issues/199">GH#199</a>: Exclude <tt class="docutils literal">file</tt> fields from <tt class="docutils literal">FormElement.form_values</tt> (as browsers do).
@@ -511,9 +522,9 @@ Patch by Holger Joukl.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id70">
+<div class="section" id="id72">
 <h1>3.6.0 (2016-03-17)</h1>
-<div class="section" id="id71">
+<div class="section" id="id73">
 <h2>Features added</h2>
 <ul class="simple">
 <li><a class="reference external" href="https://github.com/lxml/lxml/issues/187">GH#187</a>: Now supports (only) version 5.x and later of PyPy.
@@ -522,7 +533,7 @@ Patch by Armin Rigo.</li>
 is installed.  Patch by Dirkjan Ochtman.</li>
 </ul>
 </div>
-<div class="section" id="id72">
+<div class="section" id="id74">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li><a class="reference external" href="https://github.com/lxml/lxml/issues/189">GH#189</a>: Static builds honour FTP proxy configurations when downloading
@@ -534,9 +545,9 @@ Patch by Petr Demin.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id73">
+<div class="section" id="id75">
 <h1>3.5.0 (2015-11-13)</h1>
-<div class="section" id="id74">
+<div class="section" id="id76">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Unicode string results failed XPath queries in PyPy.</li>
@@ -548,7 +559,7 @@ and continued parsing instead.</li>
 </div>
 <div class="section" id="b1-2015-09-18">
 <h1>3.5.0b1 (2015-09-18)</h1>
-<div class="section" id="id75">
+<div class="section" id="id77">
 <h2>Features added</h2>
 <ul class="simple">
 <li><tt class="docutils literal">cleanup_namespaces()</tt> accepts a new argument <tt class="docutils literal">keep_ns_prefixes</tt>
@@ -580,7 +591,7 @@ Patch by Olli Pottonen.</li>
 of version 3 if available.</li>
 </ul>
 </div>
-<div class="section" id="id76">
+<div class="section" id="id78">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Memory errors that occur during tree adaptations (e.g. moving subtrees
@@ -607,9 +618,9 @@ with ElementPath to avoid hiding bugs in user code.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id77">
+<div class="section" id="id79">
 <h1>3.4.4 (2015-04-25)</h1>
-<div class="section" id="id78">
+<div class="section" id="id80">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>An ElementTree compatibility test added in lxml 3.4.3 that failed in
@@ -617,9 +628,9 @@ Python 3.4+ was removed again.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id79">
+<div class="section" id="id81">
 <h1>3.4.3 (2015-04-15)</h1>
-<div class="section" id="id80">
+<div class="section" id="id82">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Expression cache in ElementPath was ignored.  Fix by Changaco.</li>
@@ -632,9 +643,9 @@ double quotes.  Patch by Olli Pottonen.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id81">
+<div class="section" id="id83">
 <h1>3.4.2 (2015-02-07)</h1>
-<div class="section" id="id82">
+<div class="section" id="id84">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1415907">LP#1415907</a>: Crash when creating an XMLSchema from a non-root element
@@ -646,25 +657,25 @@ with pseudo-attributes.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id83">
+<div class="section" id="id85">
 <h1>3.4.1 (2014-11-20)</h1>
-<div class="section" id="id84">
+<div class="section" id="id86">
 <h2>Features added</h2>
 <ul class="simple">
 <li>New <tt class="docutils literal">htmlfile</tt> HTML generator to accompany the incremental <tt class="docutils literal">xmlfile</tt>
 serialisation API.  Patch by Burak Arslan.</li>
 </ul>
 </div>
-<div class="section" id="id85">
+<div class="section" id="id87">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li><tt class="docutils literal">lxml.sax.ElementTreeContentHandler</tt> did not initialise its superclass.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id86">
+<div class="section" id="id88">
 <h1>3.4.0 (2014-09-10)</h1>
-<div class="section" id="id87">
+<div class="section" id="id89">
 <h2>Features added</h2>
 <ul class="simple">
 <li><tt class="docutils literal">xmlfile(buffered=False)</tt> disables output buffering and flushes the
@@ -689,10 +700,10 @@ if it had opened it internally.</li>
 <li>Allow &quot;bytearray&quot; type for ASCII text input.</li>
 </ul>
 </div>
-<div class="section" id="id88">
+<div class="section" id="id90">
 <h2>Bugs fixed</h2>
 </div>
-<div class="section" id="id89">
+<div class="section" id="id91">
 <h2>Other changes</h2>
 <ul class="simple">
 <li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/400588">LP#400588</a>: decoding errors have become hard errors even in recovery mode.
@@ -706,9 +717,9 @@ use lxml 3.3.x with older versions.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id90">
+<div class="section" id="id92">
 <h1>3.3.6 (2014-08-28)</h1>
-<div class="section" id="id91">
+<div class="section" id="id93">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Prevent tree cycle creation when adding Elements as siblings.</li>
@@ -718,9 +729,9 @@ extension functions.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id92">
+<div class="section" id="id94">
 <h1>3.3.5 (2014-04-18)</h1>
-<div class="section" id="id93">
+<div class="section" id="id95">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>HTML cleaning could fail to strip javascript links that mix control
@@ -728,34 +739,34 @@ characters into the link scheme.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id94">
+<div class="section" id="id96">
 <h1>3.3.4 (2014-04-03)</h1>
-<div class="section" id="id95">
+<div class="section" id="id97">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Source line numbers above 65535 are available on Elements when
 using libxml2 2.9 or later.</li>
 </ul>
 </div>
-<div class="section" id="id96">
+<div class="section" id="id98">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li><tt class="docutils literal">lxml.html.fragment_fromstring()</tt> failed for bytes input in Py3.</li>
 </ul>
 </div>
-<div class="section" id="id97">
+<div class="section" id="id99">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id98">
+<div class="section" id="id100">
 <h1>3.3.3 (2014-03-04)</h1>
-<div class="section" id="id99">
+<div class="section" id="id101">
 <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="id100">
+<div class="section" id="id102">
 <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
@@ -763,9 +774,9 @@ subclassed from Python code.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id101">
+<div class="section" id="id103">
 <h1>3.3.2 (2014-02-26)</h1>
-<div class="section" id="id102">
+<div class="section" id="id104">
 <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
@@ -786,12 +797,12 @@ provide the same interface as that returned for Elements.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id103">
+<div class="section" id="id105">
 <h1>3.3.1 (2014-02-12)</h1>
-<div class="section" id="id104">
+<div class="section" id="id106">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id105">
+<div class="section" id="id107">
 <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
@@ -803,36 +814,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="id106">
+<div class="section" id="id108">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id107">
+<div class="section" id="id109">
 <h1>3.3.0 (2014-01-26)</h1>
-<div class="section" id="id108">
+<div class="section" id="id110">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id109">
+<div class="section" id="id111">
 <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="id110">
+<div class="section" id="id112">
 <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="id111">
+<div class="section" id="id113">
 <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="id112">
+<div class="section" id="id114">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Several error handling problems were fixed throughout the code base that
@@ -845,7 +856,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="id113">
+<div class="section" id="id115">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>Document cleanup code was simplified using the new GC features in
@@ -855,10 +866,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="id114">
+<div class="section" id="id116">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id115">
+<div class="section" id="id117">
 <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
@@ -871,7 +882,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="id116">
+<div class="section" id="id118">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>Built with Cython 0.20pre (gitrev 012ae82eb) to prepare support for
@@ -881,39 +892,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="id117">
+<div class="section" id="id119">
 <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="id118">
+<div class="section" id="id120">
 <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="id119">
+<div class="section" id="id121">
 <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="id120">
+<div class="section" id="id122">
 <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="id121">
+<div class="section" id="id123">
 <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="id122">
+<div class="section" id="id124">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>The safety check in the read-only tree implementation (e.g. used by
@@ -926,7 +937,7 @@ behaviour.</li>
 </div>
 <div class="section" id="beta1-2013-12-12">
 <h1>3.3.0beta1 (2013-12-12)</h1>
-<div class="section" id="id123">
+<div class="section" id="id125">
 <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
@@ -938,7 +949,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="id124">
+<div class="section" id="id126">
 <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.
@@ -960,7 +971,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="id125">
+<div class="section" id="id127">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>Some basic API classes use freelists internally for faster
@@ -971,12 +982,12 @@ classes internally instead of being a parser itself.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id126">
+<div class="section" id="id128">
 <h1>3.2.5 (2014-01-02)</h1>
-<div class="section" id="id127">
+<div class="section" id="id129">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id128">
+<div class="section" id="id130">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Crash in xmlfile() when closing open elements out of order in an error case.</li>
@@ -985,16 +996,16 @@ classes internally instead of being a parser itself.</li>
 comment or PI).</li>
 </ul>
 </div>
-<div class="section" id="id130">
+<div class="section" id="id132">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id131">
+<div class="section" id="id133">
 <h1>3.2.4 (2013-11-07)</h1>
-<div class="section" id="id132">
+<div class="section" id="id134">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id133">
+<div class="section" id="id135">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Memory leak when creating an XPath evaluator in a thread.</li>
@@ -1005,32 +1016,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="id136">
+<div class="section" id="id138">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id137">
+<div class="section" id="id139">
 <h1>3.2.3 (2013-07-28)</h1>
-<div class="section" id="id138">
+<div class="section" id="id140">
 <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="id139">
+<div class="section" id="id141">
 <h1>3.2.2 (2013-07-28)</h1>
-<div class="section" id="id140">
+<div class="section" id="id142">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id141">
+<div class="section" id="id143">
 <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="id142">
+<div class="section" id="id144">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>Return values of user provided element class lookup methods are now
@@ -1039,9 +1050,9 @@ API class mismatches.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id143">
+<div class="section" id="id145">
 <h1>3.2.1 (2013-05-11)</h1>
-<div class="section" id="id144">
+<div class="section" id="id146">
 <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
@@ -1050,7 +1061,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="id145">
+<div class="section" id="id147">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>When moving Elements to another tree, the namespace cleanup mechanism
@@ -1063,16 +1074,16 @@ to a crash.</li>
 crashed.</li>
 </ul>
 </div>
-<div class="section" id="id146">
+<div class="section" id="id148">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id147">
+<div class="section" id="id149">
 <h1>3.2.0 (2013-04-28)</h1>
-<div class="section" id="id148">
+<div class="section" id="id150">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id149">
+<div class="section" id="id151">
 <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
@@ -1091,16 +1102,16 @@ of overwriting the current value.</li>
 allowed by the user provided whitelist.  Patch by Christine Koppelt.</li>
 </ul>
 </div>
-<div class="section" id="id150">
+<div class="section" id="id152">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id151">
+<div class="section" id="id153">
 <h1>3.1.2 (2013-04-12)</h1>
-<div class="section" id="id152">
+<div class="section" id="id154">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id153">
+<div class="section" id="id155">
 <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
@@ -1112,16 +1123,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="id154">
+<div class="section" id="id156">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id155">
+<div class="section" id="id157">
 <h1>3.1.1 (2013-03-29)</h1>
-<div class="section" id="id156">
+<div class="section" id="id158">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id157">
+<div class="section" id="id159">
 <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
@@ -1129,7 +1140,7 @@ an AttributeError in Py3.</li>
 <li>Illegal memory access during cleanup in incremental xmlfile writer.</li>
 </ul>
 </div>
-<div class="section" id="id158">
+<div class="section" id="id160">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>The externally useless class <tt class="docutils literal">lxml.etree._BaseParser</tt> was removed
@@ -1137,16 +1148,16 @@ from the module dict.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id159">
+<div class="section" id="id161">
 <h1>3.1.0 (2013-02-10)</h1>
-<div class="section" id="id160">
+<div class="section" id="id162">
 <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="id161">
+<div class="section" id="id163">
 <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
@@ -1159,13 +1170,13 @@ in for the current run.</li>
 without threading support.  Patch by Ulrich Seidl.</li>
 </ul>
 </div>
-<div class="section" id="id162">
+<div class="section" id="id164">
 <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="id163">
+<div class="section" id="id165">
 <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
@@ -1176,7 +1187,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="id164">
+<div class="section" id="id166">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>When starting from a non-namespaced element in lxml.objectify, searching
@@ -1188,7 +1199,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="id165">
+<div class="section" id="id167">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>The externally useless class <tt class="docutils literal">_ObjectifyElementMakerCaller</tt> was
@@ -1198,27 +1209,27 @@ many children.  Patch by Anders Hammarquist.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id166">
+<div class="section" id="id168">
 <h1>3.0.2 (2012-12-14)</h1>
-<div class="section" id="id167">
+<div class="section" id="id169">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id168">
+<div class="section" id="id170">
 <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="id169">
+<div class="section" id="id171">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id170">
+<div class="section" id="id172">
 <h1>3.0.1 (2012-10-14)</h1>
-<div class="section" id="id171">
+<div class="section" id="id173">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id172">
+<div class="section" id="id174">
 <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
@@ -1227,16 +1238,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="id173">
+<div class="section" id="id175">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id174">
+<div class="section" id="id176">
 <h1>3.0 (2012-10-08)</h1>
-<div class="section" id="id175">
+<div class="section" id="id177">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id176">
+<div class="section" id="id178">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>End-of-file handling was incorrect in iterparse() when reading from
@@ -1244,7 +1255,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="id177">
+<div class="section" id="id179">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>The build no longer uses Cython by default unless the generated C files
@@ -1257,21 +1268,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="id178">
+<div class="section" id="id180">
 <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="id179">
+<div class="section" id="id181">
 <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="id180">
+<div class="section" id="id182">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>The code was adapted to work with the upcoming libxml2 2.9.0 release.</li>
@@ -1280,7 +1291,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="id181">
+<div class="section" id="id183">
 <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
@@ -1299,20 +1310,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="id182">
+<div class="section" id="id184">
 <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="id183">
+<div class="section" id="id185">
 <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="id184">
+<div class="section" id="id186">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Initial support for building in PyPy (through cpyext).</li>
@@ -1328,7 +1339,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="id185">
+<div class="section" id="id187">
 <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
@@ -1355,7 +1366,7 @@ constructor would fail with an exception, stating that the text
 cannot be modified.</li>
 </ul>
 </div>
-<div class="section" id="id186">
+<div class="section" id="id188">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>The code base was overhauled to properly use 'const' where the API
@@ -1404,44 +1415,44 @@ _XSLTResultTree, _XSLTProcessingInstruction</tt></li>
 </ul>
 </div>
 </div>
-<div class="section" id="id187">
+<div class="section" id="id189">
 <h1>2.3.6 (2012-09-28)</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>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="id190">
+<div class="section" id="id192">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id191">
+<div class="section" id="id193">
 <h1>2.3.5 (2012-07-31)</h1>
-<div class="section" id="id192">
+<div class="section" id="id194">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id193">
+<div class="section" id="id195">
 <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="id194">
+<div class="section" id="id196">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id195">
+<div class="section" id="id197">
 <h1>2.3.4 (2012-03-26)</h1>
-<div class="section" id="id196">
+<div class="section" id="id198">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id197">
+<div class="section" id="id199">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Crash when building an nsmap (Element property) with empty
@@ -1451,20 +1462,20 @@ during threaded XSLT processing.</li>
 <li>XSLT stylesheet compilation could ignore compilation errors.</li>
 </ul>
 </div>
-<div class="section" id="id198">
+<div class="section" id="id200">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id199">
+<div class="section" id="id201">
 <h1>2.3.3 (2012-01-04)</h1>
-<div class="section" id="id200">
+<div class="section" id="id202">
 <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="id201">
+<div class="section" id="id203">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Fixed a crash when using <tt class="docutils literal">iterparse()</tt> for HTML parsing and
@@ -1478,13 +1489,13 @@ Patch by Simon Sapin.</li>
 'img' tags without 'src' attribute.</li>
 </ul>
 </div>
-<div class="section" id="id202">
+<div class="section" id="id204">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id203">
+<div class="section" id="id205">
 <h1>2.3.2 (2011-11-11)</h1>
-<div class="section" id="id204">
+<div class="section" id="id206">
 <h2>Features added</h2>
 <ul class="simple">
 <li><tt class="docutils literal">lxml.objectify.deannotate()</tt> has a new boolean option
@@ -1496,7 +1507,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="id205">
+<div class="section" id="id207">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Fixed the &quot;descendant&quot; bug in cssselect a second time (after a first
@@ -1511,13 +1522,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="id206">
+<div class="section" id="id208">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id207">
+<div class="section" id="id209">
 <h1>2.3.1 (2011-09-25)</h1>
-<div class="section" id="id208">
+<div class="section" id="id210">
 <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
@@ -1535,7 +1546,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="id209">
+<div class="section" id="id211">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>HTML cleaning didn't remove 'data:' links.</li>
@@ -1563,7 +1574,7 @@ collected form values.</li>
 field properly selects them and unselects them.</li>
 </ul>
 </div>
-<div class="section" id="id210">
+<div class="section" id="id212">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>Static builds can specify the download directory with the
@@ -1571,16 +1582,16 @@ field properly selects them and unselects them.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id211">
+<div class="section" id="id213">
 <h1>2.3 (2011-02-06)</h1>
-<div class="section" id="id212">
+<div class="section" id="id214">
 <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="id213">
+<div class="section" id="id215">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>When finished reading from a file-like object, the parser
@@ -1593,7 +1604,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="id214">
+<div class="section" id="id216">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>Some public functions in the Cython-level C-API have more explicit
@@ -1603,10 +1614,10 @@ return types.</li>
 </div>
 <div class="section" id="beta1-2010-09-06">
 <h1>2.3beta1 (2010-09-06)</h1>
-<div class="section" id="id215">
+<div class="section" id="id217">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id216">
+<div class="section" id="id218">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Crash in newer libxml2 versions when moving elements between
@@ -1618,23 +1629,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="id217">
+<div class="section" id="id219">
 <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="id218">
+<div class="section" id="id220">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id219">
+<div class="section" id="id221">
 <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="id220">
+<div class="section" id="id222">
 <h2>Other changes</h2>
 <ul class="simple">
 <li><tt class="docutils literal">repr()</tt> of Element objects shows the hex ID with leading 0x
@@ -1644,7 +1655,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="id221">
+<div class="section" id="id223">
 <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>
@@ -1695,7 +1706,7 @@ the document on submit.</li>
 (compatible with ElementTree).</li>
 </ul>
 </div>
-<div class="section" id="id222">
+<div class="section" id="id224">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>API is hardened against invalid proxy instances to prevent crashes
@@ -1729,7 +1740,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="id223">
+<div class="section" id="id225">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>Official support for Python 3.1.2 and later.</li>
@@ -1742,9 +1753,9 @@ collector to clean up.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id224">
+<div class="section" id="id226">
 <h1>2.2.8 (2010-09-02)</h1>
-<div class="section" id="id225">
+<div class="section" id="id227">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Crash in newer libxml2 versions when moving elements between
@@ -1753,9 +1764,9 @@ documents that had attributes on replaced XInclude nodes.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id226">
+<div class="section" id="id228">
 <h1>2.2.7 (2010-07-24)</h1>
-<div class="section" id="id227">
+<div class="section" id="id229">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Crash in XSLT when generating text-only result documents with a
@@ -1763,25 +1774,25 @@ stylesheet created in a different thread.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id228">
+<div class="section" id="id230">
 <h1>2.2.6 (2010-03-02)</h1>
-<div class="section" id="id229">
+<div class="section" id="id231">
 <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="id230">
+<div class="section" id="id232">
 <h1>2.2.5 (2010-02-28)</h1>
-<div class="section" id="id231">
+<div class="section" id="id233">
 <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="id232">
+<div class="section" id="id234">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Crash in XPath evaluation when reading smart strings from a document
@@ -1800,21 +1811,21 @@ an element.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id233">
+<div class="section" id="id235">
 <h1>2.2.4 (2009-11-11)</h1>
-<div class="section" id="id234">
+<div class="section" id="id236">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Static build of libxml2/libxslt was broken.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id235">
+<div class="section" id="id237">
 <h1>2.2.3 (2009-10-30)</h1>
-<div class="section" id="id236">
+<div class="section" id="id238">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id237">
+<div class="section" id="id239">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>The <tt class="docutils literal">resolve_entities</tt> option did not work in the incremental feed
@@ -1847,13 +1858,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="id238">
+<div class="section" id="id240">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id239">
+<div class="section" id="id241">
 <h1>2.2.2 (2009-06-21)</h1>
-<div class="section" id="id240">
+<div class="section" id="id242">
 <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>,
@@ -1861,7 +1872,7 @@ namespaces when annotation is disabled.</li>
 from a subtree.</li>
 </ul>
 </div>
-<div class="section" id="id241">
+<div class="section" id="id243">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Namespace cleanup on subtree insertions could result in missing
@@ -1875,13 +1886,13 @@ BoolElement ({True, False, T, F, t, f} not any more), restoring lxml &lt;= 2.0
 behaviour.</li>
 </ul>
 </div>
-<div class="section" id="id242">
+<div class="section" id="id244">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id243">
+<div class="section" id="id245">
 <h1>2.2.1 (2009-06-02)</h1>
-<div class="section" id="id244">
+<div class="section" id="id246">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Injecting default attributes into a document during XML Schema
@@ -1890,7 +1901,7 @@ validation (also at parse time).</li>
 restrictions imposed by libxml2 2.7.</li>
 </ul>
 </div>
-<div class="section" id="id245">
+<div class="section" id="id247">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>The script for statically building libxml2 and libxslt didn't work
@@ -1899,13 +1910,13 @@ in Py3.</li>
 for parsing (which could lead to a crash before release 2.6.24).</li>
 </ul>
 </div>
-<div class="section" id="id246">
+<div class="section" id="id248">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id247">
+<div class="section" id="id249">
 <h1>2.2 (2009-03-21)</h1>
-<div class="section" id="id248">
+<div class="section" id="id250">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Support for <tt class="docutils literal">standalone</tt> flag in XML declaration through
@@ -1913,7 +1924,7 @@ for parsing (which could lead to a crash before release 2.6.24).</li>
 on serialisation.</li>
 </ul>
 </div>
-<div class="section" id="id249">
+<div class="section" id="id251">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Crash when parsing an XML Schema with external imports from a
@@ -1923,7 +1934,7 @@ filename.</li>
 </div>
 <div class="section" id="beta4-2009-02-27">
 <h1>2.2beta4 (2009-02-27)</h1>
-<div class="section" id="id250">
+<div class="section" id="id252">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Support strings and instantiable Element classes as child arguments
@@ -1932,7 +1943,7 @@ to the constructor of custom Element classes.</li>
 objects.</li>
 </ul>
 </div>
-<div class="section" id="id251">
+<div class="section" id="id253">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Deep-copying an ElementTree copied neither its sibling PIs and
@@ -1947,7 +1958,7 @@ to a problem in Cython, not lxml itself.</li>
 was evaluated incorrectly.</li>
 </ul>
 </div>
-<div class="section" id="id252">
+<div class="section" id="id254">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>Official support for Python 3.0.1.</li>
@@ -1958,14 +1969,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="id253">
+<div class="section" id="id255">
 <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="id254">
+<div class="section" id="id256">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Memory leak in XPath evaluators.</li>
@@ -1977,7 +1988,7 @@ string failed.</li>
 <li>Minor fixes for Python 3.</li>
 </ul>
 </div>
-<div class="section" id="id255">
+<div class="section" id="id257">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>The global error log (which is copied into the exception log) is now
@@ -1988,7 +1999,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="id256">
+<div class="section" id="id258">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Potential memory leak on exception handling.  This was due to a
@@ -2000,9 +2011,9 @@ problem in Cython, not lxml itself.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id257">
+<div class="section" id="id259">
 <h1>2.1.5 (2009-01-06)</h1>
-<div class="section" id="id258">
+<div class="section" id="id260">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Potential memory leak on exception handling.  This was due to a
@@ -2013,39 +2024,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="id259">
+<div class="section" id="id261">
 <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="id260">
+<div class="section" id="id262">
 <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="id261">
+<div class="section" id="id263">
 <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="id262">
+<div class="section" id="id264">
 <h1>2.1.4 (2008-12-12)</h1>
-<div class="section" id="id263">
+<div class="section" id="id265">
 <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="id264">
+<div class="section" id="id266">
 <h1>2.0.11 (2008-12-12)</h1>
-<div class="section" id="id265">
+<div class="section" id="id267">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Crash when using an XPath evaluator in multiple threads.</li>
@@ -2054,7 +2065,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="id266">
+<div class="section" id="id268">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Support for XSLT result tree fragments in XPath/XSLT extension
@@ -2064,7 +2075,7 @@ functions.</li>
 <li>Instantiating a custom Element classes creates a new Element.</li>
 </ul>
 </div>
-<div class="section" id="id267">
+<div class="section" id="id269">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>XSLT didn't inherit the parse options of the input document.</li>
@@ -2075,16 +2086,16 @@ that end in a parenthesis, will be linked in their entirety (typical
 with Wikipedia links).</li>
 </ul>
 </div>
-<div class="section" id="id268">
+<div class="section" id="id270">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id269">
+<div class="section" id="id271">
 <h1>2.1.3 (2008-11-17)</h1>
-<div class="section" id="id270">
+<div class="section" id="id272">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id271">
+<div class="section" id="id273">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Ref-count leaks when lxml enters a try-except statement while an
@@ -2103,13 +2114,13 @@ ElementTrees.</li>
 <li>Overriding the parser encoding didn't work for many encodings.</li>
 </ul>
 </div>
-<div class="section" id="id272">
+<div class="section" id="id274">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id273">
+<div class="section" id="id275">
 <h1>2.0.10 (2008-11-17)</h1>
-<div class="section" id="id274">
+<div class="section" id="id276">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Ref-count leaks when lxml enters a try-except statement while an
@@ -2118,9 +2129,9 @@ Cython, not lxml itself.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id275">
+<div class="section" id="id277">
 <h1>2.1.2 (2008-09-05)</h1>
-<div class="section" id="id276">
+<div class="section" id="id278">
 <h2>Features added</h2>
 <ul class="simple">
 <li>lxml.etree now tries to find the absolute path name of files when
@@ -2129,7 +2140,7 @@ resolving relative URLs, as lixbml2 can prepend them with the path
 of the source document.</li>
 </ul>
 </div>
-<div class="section" id="id277">
+<div class="section" id="id279">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Memory problem when passing documents between threads.</li>
@@ -2137,13 +2148,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="id278">
+<div class="section" id="id280">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id279">
+<div class="section" id="id281">
 <h1>2.0.9 (2008-09-05)</h1>
-<div class="section" id="id280">
+<div class="section" id="id282">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Memory problem when passing documents between threads.</li>
@@ -2152,12 +2163,12 @@ exception instead of calling <tt class="docutils literal">.close()</tt> on the t
 </ul>
 </div>
 </div>
-<div class="section" id="id281">
+<div class="section" id="id283">
 <h1>2.1.1 (2008-07-24)</h1>
-<div class="section" id="id282">
+<div class="section" id="id284">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id283">
+<div class="section" id="id285">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Crash when parsing XSLT stylesheets in a thread and using them in
@@ -2166,20 +2177,20 @@ another.</li>
 Python 3.</li>
 </ul>
 </div>
-<div class="section" id="id284">
+<div class="section" id="id286">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id285">
+<div class="section" id="id287">
 <h1>2.0.8 (2008-07-24)</h1>
-<div class="section" id="id286">
+<div class="section" id="id288">
 <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="id287">
+<div class="section" id="id289">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Crash when parsing XSLT stylesheets in a thread and using them in
@@ -2188,13 +2199,13 @@ another.</li>
 with parameters.</li>
 </ul>
 </div>
-<div class="section" id="id288">
+<div class="section" id="id290">
 <h2>Other changes</h2>
 </div>
 </div>
-<div class="section" id="id289">
+<div class="section" id="id291">
 <h1>2.1 (2008-07-09)</h1>
-<div class="section" id="id290">
+<div class="section" id="id292">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Smart strings can be switched off in XPath (<tt class="docutils literal">smart_strings</tt>
@@ -2203,7 +2214,7 @@ keyword option).</li>
 with whitespace in URL attributes.</li>
 </ul>
 </div>
-<div class="section" id="id291">
+<div class="section" id="id293">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Custom resolvers were not used for XMLSchema includes/imports and
@@ -2212,7 +2223,7 @@ XInclude processing.</li>
 with parameters.</li>
 </ul>
 </div>
-<div class="section" id="id292">
+<div class="section" id="id294">
 <h2>Other changes</h2>
 <ul class="simple">
 <li><tt class="docutils literal">objectify.enableRecursiveStr()</tt> was removed, use
@@ -2221,15 +2232,15 @@ with parameters.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id293">
+<div class="section" id="id295">
 <h1>2.0.7 (2008-06-20)</h1>
-<div class="section" id="id294">
+<div class="section" id="id296">
 <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="id295">
+<div class="section" id="id297">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Descending dot-separated classes in CSS selectors were not resolved
@@ -2240,7 +2251,7 @@ correctly.</li>
 the super class is not called from Python subclasses.</li>
 </ul>
 </div>
-<div class="section" id="id296">
+<div class="section" id="id298">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>Non-ASCII characters in attribute values are no longer escaped on
@@ -2250,7 +2261,7 @@ serialisation.</li>
 </div>
 <div class="section" id="beta3-2008-06-19">
 <h1>2.1beta3 (2008-06-19)</h1>
-<div class="section" id="id297">
+<div class="section" id="id299">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Major overhaul of <tt class="docutils literal">tools/xpathgrep.py</tt> script.</li>
@@ -2276,7 +2287,7 @@ lxml.html (experimental).</li>
 (experimental).</li>
 </ul>
 </div>
-<div class="section" id="id298">
+<div class="section" id="id300">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li><tt class="docutils literal">ElementTree.parse()</tt> didn't handle target parser result.</li>
@@ -2291,7 +2302,7 @@ platform.</li>
 <li>Rare crash when serialising to a file object with certain encodings.</li>
 </ul>
 </div>
-<div class="section" id="id299">
+<div class="section" id="id301">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>Non-ASCII characters in attribute values are no longer escaped on
@@ -2304,12 +2315,12 @@ lxml.objectify.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id300">
+<div class="section" id="id302">
 <h1>2.0.6 (2008-05-31)</h1>
-<div class="section" id="id301">
+<div class="section" id="id303">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id302">
+<div class="section" id="id304">
 <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>
@@ -2320,7 +2331,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="id303">
+<div class="section" id="id305">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>lxml should now build without problems on MacOS-X.</li>
@@ -2329,7 +2340,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="id304">
+<div class="section" id="id306">
 <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>
@@ -2338,7 +2349,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="id305">
+<div class="section" id="id307">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Moving a subtree from a document created in one thread into a
@@ -2349,7 +2360,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="id306">
+<div class="section" id="id308">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>If the default namespace is redundantly defined with a prefix on the
@@ -2361,12 +2372,12 @@ namespace (i.e. they would end up in the wrong namespace).</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id307">
+<div class="section" id="id309">
 <h1>2.0.5 (2008-05-01)</h1>
-<div class="section" id="id308">
+<div class="section" id="id310">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id309">
+<div class="section" id="id311">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Resolving to a filename in custom resolvers didn't work.</li>
@@ -2375,13 +2386,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="id310">
+<div class="section" id="id312">
 <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="id311">
+<div class="section" id="id313">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Error logging in Schematron (requires libxml2 2.6.32 or later).</li>
@@ -2391,7 +2402,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="id312">
+<div class="section" id="id314">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Resolving to a filename in custom resolvers didn't work.</li>
@@ -2401,7 +2412,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="id313">
+<div class="section" id="id315">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>Major cleanup in internal <tt class="docutils literal">moveNodeToDocument()</tt> function, which
@@ -2415,12 +2426,12 @@ context.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id314">
+<div class="section" id="id316">
 <h1>2.0.4 (2008-04-13)</h1>
-<div class="section" id="id315">
+<div class="section" id="id317">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id316">
+<div class="section" id="id318">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Hanging thread in conjunction with GTK threading.</li>
@@ -2429,13 +2440,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="id317">
+<div class="section" id="id319">
 <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="id318">
+<div class="section" id="id320">
 <h2>Features added</h2>
 <ul class="simple">
 <li>New event types 'comment' and 'pi' in <tt class="docutils literal">iterparse()</tt>.</li>
@@ -2449,14 +2460,14 @@ an Element.</li>
 <li><tt class="docutils literal">docinfo.URL</tt> property is writable.</li>
 </ul>
 </div>
-<div class="section" id="id319">
+<div class="section" id="id321">
 <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="id320">
+<div class="section" id="id322">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>Minor API speed-ups.</li>
@@ -2500,9 +2511,9 @@ instead.</p>
 </ul>
 </div>
 </div>
-<div class="section" id="id321">
+<div class="section" id="id323">
 <h1>2.0.3 (2008-03-26)</h1>
-<div class="section" id="id322">
+<div class="section" id="id324">
 <h2>Features added</h2>
 <ul class="simple">
 <li>soupparser.parse() allows passing keyword arguments on to
@@ -2510,7 +2521,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="id323">
+<div class="section" id="id325">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li><tt class="docutils literal">lxml.html.diff</tt> didn't treat empty tags properly (e.g.,
@@ -2523,7 +2534,7 @@ which made them turn up in text content.</li>
 correctly serialise the value to a string.</li>
 </ul>
 </div>
-<div class="section" id="id324">
+<div class="section" id="id326">
 <h2>Other changes</h2>
 <ul class="simple">
 <li><tt class="docutils literal">lxml.html.ElementSoup</tt> was replaced by a new module
@@ -2539,16 +2550,16 @@ option.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id325">
+<div class="section" id="id327">
 <h1>2.0.2 (2008-02-22)</h1>
-<div class="section" id="id326">
+<div class="section" id="id328">
 <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="id327">
+<div class="section" id="id329">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>The prefix for objectify's pytype namespace was missing from the set
@@ -2558,7 +2569,7 @@ of default prefixes.</li>
 <li>Slice deletion bug fixed in objectify.</li>
 </ul>
 </div>
-<div class="section" id="id328">
+<div class="section" id="id330">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>Enabled doctests for some Python modules (especially <tt class="docutils literal">lxml.html</tt>).</li>
@@ -2569,9 +2580,9 @@ of default prefixes.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id329">
+<div class="section" id="id331">
 <h1>2.0.1 (2008-02-13)</h1>
-<div class="section" id="id330">
+<div class="section" id="id332">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Child iteration in <tt class="docutils literal">lxml.pyclasslookup</tt>.</li>
@@ -2579,7 +2590,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="id331">
+<div class="section" id="id333">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>The module <tt class="docutils literal">lxml.html.builder</tt> was duplicated as
@@ -2591,7 +2602,7 @@ ignored.</li>
 elements at the wrong position.</li>
 </ul>
 </div>
-<div class="section" id="id332">
+<div class="section" id="id334">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>The generated API documentation was cleaned up and disburdened from
@@ -2606,9 +2617,9 @@ compiler options.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id333">
+<div class="section" id="id335">
 <h1>2.0 (2008-02-01)</h1>
-<div class="section" id="id334">
+<div class="section" id="id336">
 <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
@@ -2713,7 +2724,7 @@ instead of a string</li>
 <li>EXSLT RegExp support in standard XPath (not only XSLT)</li>
 </ul>
 </div>
-<div class="section" id="id335">
+<div class="section" id="id337">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Missing import in <tt class="docutils literal">lxml.html.clean</tt>.</li>
@@ -2750,7 +2761,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="id336">
+<div class="section" id="id338">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>Exceptions carry only the part of the error log that is related to
@@ -2808,16 +2819,16 @@ generic <tt class="docutils literal">findOrBuildNodeNsPrefix</tt></li>
 </ul>
 </div>
 </div>
-<div class="section" id="id337">
+<div class="section" id="id339">
 <h1>1.3.6 (2007-10-29)</h1>
-<div class="section" id="id338">
+<div class="section" id="id340">
 <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="id339">
+<div class="section" id="id341">
 <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>
@@ -2827,12 +2838,12 @@ problems that would otherwise appear in later tests.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id340">
+<div class="section" id="id342">
 <h1>1.3.5 (2007-10-22)</h1>
-<div class="section" id="id341">
+<div class="section" id="id343">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id342">
+<div class="section" id="id344">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>lxml.etree could crash when adding more than 10000 namespaces to a
@@ -2842,9 +2853,9 @@ than the root node of a tree</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id343">
+<div class="section" id="id345">
 <h1>1.3.4 (2007-08-30)</h1>
-<div class="section" id="id344">
+<div class="section" id="id346">
 <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
@@ -2858,13 +2869,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="id345">
+<div class="section" id="id347">
 <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="id346">
+<div class="section" id="id348">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>lxml now raises a TagNameWarning about tag names containing ':' instead of
@@ -2880,9 +2891,9 @@ ElementTree serialisation includes them).</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id347">
+<div class="section" id="id349">
 <h1>1.3.3 (2007-07-26)</h1>
-<div class="section" id="id348">
+<div class="section" id="id350">
 <h2>Features added</h2>
 <ul class="simple">
 <li>ElementTree compatible parser <tt class="docutils literal">ETCompatXMLParser</tt> strips processing
@@ -2893,7 +2904,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="id349">
+<div class="section" id="id351">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Parsing from Python Unicode strings failed on some platforms</li>
@@ -2903,21 +2914,21 @@ the parser you pass.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id350">
+<div class="section" id="id352">
 <h1>1.3.2 (2007-07-03)</h1>
-<div class="section" id="id351">
+<div class="section" id="id353">
 <h2>Features added</h2>
 </div>
-<div class="section" id="id352">
+<div class="section" id="id354">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>&quot;deallocating None&quot; crash bug</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id353">
+<div class="section" id="id355">
 <h1>1.3.1 (2007-07-02)</h1>
-<div class="section" id="id354">
+<div class="section" id="id356">
 <h2>Features added</h2>
 <ul class="simple">
 <li>objectify.DataElement now supports setting values from existing data
@@ -2925,7 +2936,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="id355">
+<div class="section" id="id357">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Better way to prevent crashes in Element proxy cleanup code</li>
@@ -2935,9 +2946,9 @@ elements (not just plain Python types) and reuses defined namespaces etc.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id356">
+<div class="section" id="id358">
 <h1>1.3 (2007-06-24)</h1>
-<div class="section" id="id357">
+<div class="section" id="id359">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Module <tt class="docutils literal">lxml.pyclasslookup</tt> module implements an Element class lookup
@@ -2966,7 +2977,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="id358">
+<div class="section" id="id360">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Removing Elements from a tree could make them lose their namespace
@@ -2990,16 +3001,16 @@ PIs are copied.</li>
 documents</li>
 </ul>
 </div>
-<div class="section" id="id359">
+<div class="section" id="id361">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>major restructuring in the documentation</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id360">
+<div class="section" id="id362">
 <h1>1.2.1 (2007-02-27)</h1>
-<div class="section" id="id361">
+<div class="section" id="id363">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Build fixes for MS compiler</li>
@@ -3010,9 +3021,9 @@ to access</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id362">
+<div class="section" id="id364">
 <h1>1.2 (2007-02-20)</h1>
-<div class="section" id="id363">
+<div class="section" id="id365">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Rich comparison of QName objects</li>
@@ -3028,7 +3039,7 @@ possible to pass an --rpath directly to distutils; previously this was being
 shadowed.</li>
 </ul>
 </div>
-<div class="section" id="id364">
+<div class="section" id="id366">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Element instantiation now uses locks to prevent race conditions with threads</li>
@@ -3038,7 +3049,7 @@ support in these environments</li>
 <li>Element.find*() did not accept QName objects as path</li>
 </ul>
 </div>
-<div class="section" id="id365">
+<div class="section" id="id367">
 <h2>Other changes</h2>
 <ul class="simple">
 <li>code cleanup: redundant _NodeBase super class merged into _Element class
@@ -3047,9 +3058,9 @@ the compatibility of the public C-API</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id366">
+<div class="section" id="id368">
 <h1>1.1.2 (2006-10-30)</h1>
-<div class="section" id="id367">
+<div class="section" id="id369">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Data elements in objectify support repr(), which is now used by dump()</li>
@@ -3060,7 +3071,7 @@ tail, attributes and namespaces</li>
 <li>Simplified support for handling XSLT processing instructions</li>
 </ul>
 </div>
-<div class="section" id="id368">
+<div class="section" id="id370">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Parser resources were not freed before the next parser run</li>
@@ -3076,9 +3087,9 @@ closed/freed</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id369">
+<div class="section" id="id371">
 <h1>1.1.1 (2006-09-21)</h1>
-<div class="section" id="id370">
+<div class="section" id="id372">
 <h2>Features added</h2>
 <ul class="simple">
 <li>XSLT profiling support (<tt class="docutils literal">profile_run</tt> keyword)</li>
@@ -3086,7 +3097,7 @@ closed/freed</li>
 <li>Support custom elements for tree nodes in lxml.objectify</li>
 </ul>
 </div>
-<div class="section" id="id371">
+<div class="section" id="id373">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>lxml.objectify failed to support long data values (e.g., &quot;123L&quot;)</li>
@@ -3101,9 +3112,9 @@ elements)</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id372">
+<div class="section" id="id374">
 <h1>1.1 (2006-09-13)</h1>
-<div class="section" id="id373">
+<div class="section" id="id375">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Comments and processing instructions return '&lt;!-- comment --&gt;' and
@@ -3156,7 +3167,7 @@ generated elements</li>
 element</li>
 </ul>
 </div>
-<div class="section" id="id374">
+<div class="section" id="id376">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>filenames with local 8-bit encoding were not supported</li>
@@ -3180,30 +3191,30 @@ change from 1.0.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id375">
+<div class="section" id="id377">
 <h1>1.0.4 (2006-09-09)</h1>
-<div class="section" id="id376">
+<div class="section" id="id378">
 <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="id377">
+<div class="section" id="id379">
 <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="id378">
+<div class="section" id="id380">
 <h1>1.0.3 (2006-08-08)</h1>
-<div class="section" id="id379">
+<div class="section" id="id381">
 <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="id380">
+<div class="section" id="id382">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Crash when mixing elements from XSLT results into other trees</li>
@@ -3213,16 +3224,16 @@ change from 1.0.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id381">
+<div class="section" id="id383">
 <h1>1.0.2 (2006-06-27)</h1>
-<div class="section" id="id382">
+<div class="section" id="id384">
 <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="id383">
+<div class="section" id="id385">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Rare exceptions in Python list functions were not handled</li>
@@ -3234,15 +3245,15 @@ cases</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id384">
+<div class="section" id="id386">
 <h1>1.0.1 (2006-06-09)</h1>
-<div class="section" id="id385">
+<div class="section" id="id387">
 <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="id386">
+<div class="section" id="id388">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Document deallocation could crash in certain garbage collection scenarios</li>
@@ -3258,9 +3269,9 @@ stylesheet and crash on repeated calls</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id387">
+<div class="section" id="id389">
 <h1>1.0 (2006-06-01)</h1>
-<div class="section" id="id388">
+<div class="section" id="id390">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Element.getiterator() and the findall() methods support finding arbitrary
@@ -3307,7 +3318,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="id389">
+<div class="section" id="id391">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Memory leak in Element.__setitem__</li>
@@ -3349,9 +3360,9 @@ ElementTree root node as reference point</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id390">
+<div class="section" id="id392">
 <h1>0.9.2 (2006-05-10)</h1>
-<div class="section" id="id391">
+<div class="section" id="id393">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Speedup for Element.makeelement(): the new element reuses the original
@@ -3361,7 +3372,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="id392">
+<div class="section" id="id394">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>str(xslt_result) was broken for XSLT output other than UTF-8</li>
@@ -3371,9 +3382,9 @@ libxml2 document instead of creating a new empty one</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id393">
+<div class="section" id="id395">
 <h1>0.9.1 (2006-03-30)</h1>
-<div class="section" id="id394">
+<div class="section" id="id396">
 <h2>Features added</h2>
 <ul class="simple">
 <li>lxml.sax.ElementTreeContentHandler checks closing elements and raises
@@ -3385,7 +3396,7 @@ argument)</li>
 <li>Minor API performance improvements</li>
 </ul>
 </div>
-<div class="section" id="id395">
+<div class="section" id="id397">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Memory deallocation bug when using XSLT output method &quot;html&quot;</li>
@@ -3394,9 +3405,9 @@ argument)</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id396">
+<div class="section" id="id398">
 <h1>0.9 (2006-03-20)</h1>
-<div class="section" id="id397">
+<div class="section" id="id399">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Error logging API for libxml2 error messages</li>
@@ -3421,7 +3432,7 @@ parent element.</li>
 doc/sax.txt for more information.</li>
 </ul>
 </div>
-<div class="section" id="id398">
+<div class="section" id="id400">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Segfaults and memory leaks in various API functions of Element</li>
@@ -3433,9 +3444,9 @@ cannot support this due to libxslt deficiencies)</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id399">
+<div class="section" id="id401">
 <h1>0.8 (2005-11-03)</h1>
-<div class="section" id="id400">
+<div class="section" id="id402">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Support for copy.deepcopy() on elements. copy.copy() works also, but
@@ -3449,7 +3460,7 @@ supported and parsing of gzipped XML files works.</li>
 SubElement.</li>
 </ul>
 </div>
-<div class="section" id="id401">
+<div class="section" id="id403">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Use xslt-config instead of xml2-config to find out libxml2
@@ -3472,9 +3483,9 @@ fixed.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id402">
+<div class="section" id="id404">
 <h1>0.7 (2005-06-15)</h1>
-<div class="section" id="id403">
+<div class="section" id="id405">
 <h2>Features added</h2>
 <ul class="simple">
 <li>parameters (XPath expressions) can be passed to XSLT using keyword
@@ -3504,7 +3515,7 @@ prefix declarations on these elements and these prefixes will show up
 in XML serialization.</li>
 </ul>
 </div>
-<div class="section" id="id404">
+<div class="section" id="id406">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Killed yet another memory management related bug: trees created
@@ -3525,9 +3536,9 @@ test both serializing to StringIO as well as serializing to a real file.</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id405">
+<div class="section" id="id407">
 <h1>0.6 (2005-05-14)</h1>
-<div class="section" id="id406">
+<div class="section" id="id408">
 <h2>Features added</h2>
 <ul class="simple">
 <li>Changed setup.py so that library_dirs is also guessed. This should
@@ -3536,7 +3547,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="id407">
+<div class="section" id="id409">
 <h2>Bugs fixed</h2>
 <ul class="simple">
 <li>Do the right thing when handling namespaced attributes.</li>
@@ -3545,7 +3556,7 @@ had very nasty side-effects before this fix, sorry!</li>
 </ul>
 </div>
 </div>
-<div class="section" id="id408">
+<div class="section" id="id410">
 <h1>0.5.1 (2005-04-09)</h1>
 <ul class="simple">
 <li>Python 2.2 compatibility fixes.</li>
@@ -3553,14 +3564,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="id409">
+<div class="section" id="id411">
 <h1>0.5 (2005-04-08)</h1>
 <p>Initial public release.</p>
 </div>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2019-07-27.
+Generated on: 2019-08-11.
 
 </div>
 </body>
index 9f1105c..b8fcd40 100644 (file)
@@ -24,7 +24,7 @@ function hide_menu() {
 </script><meta content="width=device-width, initial-scale=1" name="viewport" /></head>
 <body onclick="hide_menu()">
 <div class="document" id="elementtree-compatibility-of-lxml-etree">
-<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><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#where-to-get-it">Where to get it</a></li><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-dev-sources">Building lxml from dev 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#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on 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></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#passing-generated-trees-through-python">Passing generated trees through Python</a></li><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 4 4 0-menu"><li class="menu title"><a href="changes-4.4.0.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="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">ElementTree compatibility of lxml.etree</h1>
+<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><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#where-to-get-it">Where to get it</a></li><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-dev-sources">Building lxml from dev 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#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on 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></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#passing-generated-trees-through-python">Passing generated trees through Python</a></li><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 4 4 1-menu"><li class="menu title"><a href="changes-4.4.1.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="/sitemap.html">Sitemap</a></li></ul></div></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>
@@ -199,7 +199,7 @@ enough to replace a shallow copy in your case.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2019-07-27.
+Generated on: 2019-08-11.
 
 </div>
 </body>
index 972fdb3..e5dbcf7 100644 (file)
@@ -24,7 +24,7 @@ function hide_menu() {
 </script><meta content="width=device-width, initial-scale=1" name="viewport" /></head>
 <body onclick="hide_menu()">
 <div class="document" id="credits">
-<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><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#where-to-get-it">Where to get it</a></li><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-dev-sources">Building lxml from dev 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#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on 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></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#passing-generated-trees-through-python">Passing generated trees through Python</a></li><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 4 4 0-menu"><li class="menu title"><a href="changes-4.4.0.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="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">Credits</h1>
+<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><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#where-to-get-it">Where to get it</a></li><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-dev-sources">Building lxml from dev 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#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on 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></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#passing-generated-trees-through-python">Passing generated trees through Python</a></li><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 4 4 1-menu"><li class="menu title"><a href="changes-4.4.1.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="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">Credits</h1>
 
 <div class="section" id="main-contributors">
 <h1>Main contributors</h1>
@@ -88,7 +88,7 @@ Holger Krekel for originally hosting lxml on codespeak.net</li>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2019-07-27.
+Generated on: 2019-08-11.
 
 </div>
 </body>
index 50a12c1..b74079d 100644 (file)
@@ -24,7 +24,7 @@ function hide_menu() {
 </script><meta content="width=device-width, initial-scale=1" name="viewport" /></head>
 <body onclick="hide_menu()">
 <div class="document" id="lxml-cssselect">
-<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><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#where-to-get-it">Where to get it</a></li><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-dev-sources">Building lxml from dev 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#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on 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></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#passing-generated-trees-through-python">Passing generated trees through Python</a></li><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 4 4 0-menu"><li class="menu title"><a href="changes-4.4.0.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="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">lxml.cssselect</h1>
+<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><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#where-to-get-it">Where to get it</a></li><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-dev-sources">Building lxml from dev 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#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on 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></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#passing-generated-trees-through-python">Passing generated trees through Python</a></li><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 4 4 1-menu"><li class="menu title"><a href="changes-4.4.1.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="/sitemap.html">Sitemap</a></li></ul></div></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
@@ -113,7 +113,7 @@ namespace URIs: the <tt class="docutils literal">CSSSelector</tt> class accepts
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2019-07-27.
+Generated on: 2019-08-11.
 
 </div>
 </body>
index 09dd6c1..4fb82d3 100644 (file)
@@ -24,7 +24,7 @@ function hide_menu() {
 </script><meta content="width=device-width, initial-scale=1" name="viewport" /></head>
 <body onclick="hide_menu()">
 <div class="document" id="using-custom-element-classes-in-lxml">
-<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><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#where-to-get-it">Where to get it</a></li><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-dev-sources">Building lxml from dev 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#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on 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></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#passing-generated-trees-through-python">Passing generated trees through Python</a></li><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 4 4 0-menu"><li class="menu title"><a href="changes-4.4.0.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="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">Using custom Element classes in lxml</h1>
+<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><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#where-to-get-it">Where to get it</a></li><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-dev-sources">Building lxml from dev 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#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on 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></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#passing-generated-trees-through-python">Passing generated trees through Python</a></li><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 4 4 1-menu"><li class="menu title"><a href="changes-4.4.1.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="/sitemap.html">Sitemap</a></li></ul></div></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
@@ -525,7 +525,7 @@ and use the blank decorator instead:</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2019-07-27.
+Generated on: 2019-08-11.
 
 </div>
 </body>
index 9811e11..21c942a 100644 (file)
@@ -24,7 +24,7 @@ function hide_menu() {
 </script><meta content="width=device-width, initial-scale=1" name="viewport" /></head>
 <body onclick="hide_menu()">
 <div class="document" id="beautifulsoup-parser">
-<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><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#where-to-get-it">Where to get it</a></li><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-dev-sources">Building lxml from dev 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#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on 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></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#passing-generated-trees-through-python">Passing generated trees through Python</a></li><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 4 4 0-menu"><li class="menu title"><a href="changes-4.4.0.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="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">BeautifulSoup Parser</h1>
+<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><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#where-to-get-it">Where to get it</a></li><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-dev-sources">Building lxml from dev 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#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on 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></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#passing-generated-trees-through-python">Passing generated trees through Python</a></li><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 4 4 1-menu"><li class="menu title"><a href="changes-4.4.1.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="/sitemap.html">Sitemap</a></li></ul></div></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 for working with real-world and broken HTML,
 just like <a class="reference external" href="lxmlhtml.html">lxml.html</a>.  As of version 4.x, it can use
@@ -203,7 +203,7 @@ you can simply pass the resulting Unicode string into lxml's parser.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2019-07-27.
+Generated on: 2019-08-11.
 
 </div>
 </body>
index f92e154..87299a5 100644 (file)
@@ -24,7 +24,7 @@ function hide_menu() {
 </script><meta content="width=device-width, initial-scale=1" name="viewport" /></head>
 <body onclick="hide_menu()">
 <div class="document" id="python-extensions-for-xpath-and-xslt">
-<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><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#where-to-get-it">Where to get it</a></li><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-dev-sources">Building lxml from dev 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#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on 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></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#passing-generated-trees-through-python">Passing generated trees through Python</a></li><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 4 4 0-menu"><li class="menu title"><a href="changes-4.4.0.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="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">Python extensions for XPath and XSLT</h1>
+<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><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#where-to-get-it">Where to get it</a></li><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-dev-sources">Building lxml from dev 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#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on 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></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#passing-generated-trees-through-python">Passing generated trees through Python</a></li><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 4 4 1-menu"><li class="menu title"><a href="changes-4.4.1.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="/sitemap.html">Sitemap</a></li></ul></div></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>
@@ -530,7 +530,7 @@ will work:</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2019-07-27.
+Generated on: 2019-08-11.
 
 </div>
 </body>
index b43a8d3..cfd847b 100644 (file)
@@ -24,7 +24,7 @@ function hide_menu() {
 </script><meta content="width=device-width, initial-scale=1" name="viewport" /></head>
 <body onclick="hide_menu()">
 <div class="document" id="html5lib-parser">
-<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><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#where-to-get-it">Where to get it</a></li><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-dev-sources">Building lxml from dev 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#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on 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></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#passing-generated-trees-through-python">Passing generated trees through Python</a></li><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 4 4 0-menu"><li class="menu title"><a href="changes-4.4.0.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="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">html5lib Parser</h1>
+<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><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#where-to-get-it">Where to get it</a></li><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-dev-sources">Building lxml from dev 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#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on 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></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#passing-generated-trees-through-python">Passing generated trees through Python</a></li><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 4 4 1-menu"><li class="menu title"><a href="changes-4.4.1.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="/sitemap.html">Sitemap</a></li></ul></div></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
@@ -90,7 +90,7 @@ module.  Note that these are the parser classes provided by html5lib.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2019-07-27.
+Generated on: 2019-08-11.
 
 </div>
 </body>
index e977cce..bbc0734 100644 (file)
@@ -26,7 +26,7 @@ function hide_menu() {
 </script><meta content="width=device-width, initial-scale=1" name="viewport" /></head>
 <body onclick="hide_menu()">
 <div class="document" id="lxml">
-<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><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#where-to-get-it">Where to get it</a></li><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-dev-sources">Building lxml from dev 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#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on 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></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#passing-generated-trees-through-python">Passing generated trees through Python</a></li><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 4 4 0-menu"><li class="menu title"><a href="changes-4.4.0.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="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">lxml - XML and HTML with Python</h1>
+<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><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#where-to-get-it">Where to get it</a></li><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-dev-sources">Building lxml from dev 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#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on 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></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#passing-generated-trees-through-python">Passing generated trees through Python</a></li><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 4 4 1-menu"><li class="menu title"><a href="changes-4.4.1.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="/sitemap.html">Sitemap</a></li></ul></div></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>
@@ -72,7 +72,7 @@ Jetbrains supports the lxml project by donating free licenses of their
 </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-4.4.0.pdf">PDF
+<p>The complete lxml documentation is available for download as <a class="reference external" href="lxmldoc-4.4.1.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">
@@ -136,8 +136,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-4.4.0.tgz">lxml 4.4.0</a>, released 2019-07-27
-(<a class="reference external" href="/changes-4.4.0.html">changes for 4.4.0</a>).  <a class="reference external" href="#old-versions">Older versions</a>
+<p>The latest version is <a class="reference external" href="/files/lxml-4.4.1.tgz">lxml 4.4.1</a>, released 2019-08-11
+(<a class="reference external" href="/changes-4.4.1.html">changes for 4.4.1</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>
@@ -145,7 +145,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-4.4.0.pdf">PDF documentation</a>.</p>
+<a class="reference external" href="lxmldoc-4.4.1.pdf">PDF documentation</a>.</p>
 <p>The latest <a class="reference external" href="https://github.com/lxml/lxml/archive/master.zip">installable developer sources</a>
 are available from Github.  It's also possible to check out
 the latest development version of lxml from Github directly, using a command
@@ -204,6 +204,7 @@ obstacle to using lxml in your codebase.</p>
 <a class="reference external" href="http://lxml.de/2.0/">2.0</a>,
 <a class="reference external" href="http://lxml.de/1.3/">1.3</a></p>
 <ul class="simple">
+<li><a class="reference external" href="/files/lxml-4.4.1.tgz">lxml 4.4.1</a>, released 2019-08-11 (<a class="reference external" href="/changes-4.4.1.html">changes for 4.4.1</a>)</li>
 <li><a class="reference external" href="/files/lxml-4.4.0.tgz">lxml 4.4.0</a>, released 2019-07-27 (<a class="reference external" href="/changes-4.4.0.html">changes for 4.4.0</a>)</li>
 <li><a class="reference external" href="/files/lxml-4.3.5.tgz">lxml 4.3.5</a>, released 2019-07-27 (<a class="reference external" href="/changes-4.3.5.html">changes for 4.3.5</a>)</li>
 <li><a class="reference external" href="/files/lxml-4.3.4.tgz">lxml 4.3.4</a>, released 2019-06-10 (<a class="reference external" href="/changes-4.3.4.html">changes for 4.3.4</a>)</li>
@@ -234,7 +235,7 @@ donation is non-refundable.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2019-07-27.
+Generated on: 2019-08-11.
 
 </div>
 </body>
index fc09293..38e0b75 100644 (file)
@@ -24,7 +24,7 @@ function hide_menu() {
 </script><meta content="width=device-width, initial-scale=1" name="viewport" /></head>
 <body onclick="hide_menu()">
 <div class="document" id="installing-lxml">
-<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><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#where-to-get-it">Where to get it</a></li><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-dev-sources">Building lxml from dev 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#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on 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></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#passing-generated-trees-through-python">Passing generated trees through Python</a></li><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 4 4 0-menu"><li class="menu title"><a href="changes-4.4.0.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="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">Installing lxml</h1>
+<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><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#where-to-get-it">Where to get it</a></li><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-dev-sources">Building lxml from dev 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#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on 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></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#passing-generated-trees-through-python">Passing generated trees through Python</a></li><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 4 4 1-menu"><li class="menu title"><a href="changes-4.4.1.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="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">Installing lxml</h1>
 
 <div class="contents topic" id="contents">
 <p class="topic-title first">Contents</p>
@@ -208,7 +208,7 @@ read the
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2019-07-27.
+Generated on: 2019-08-11.
 
 </div>
 </body>
index 5451d38..71e1456 100644 (file)
@@ -24,7 +24,7 @@ function hide_menu() {
 </script><meta content="width=device-width, initial-scale=1" name="viewport" /></head>
 <body onclick="hide_menu()">
 <div class="document" id="why-lxml">
-<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><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#where-to-get-it">Where to get it</a></li><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-dev-sources">Building lxml from dev 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#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on 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></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#passing-generated-trees-through-python">Passing generated trees through Python</a></li><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 4 4 0-menu"><li class="menu title"><a href="changes-4.4.0.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="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">Why lxml?</h1>
+<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><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#where-to-get-it">Where to get it</a></li><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-dev-sources">Building lxml from dev 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#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on 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></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#passing-generated-trees-through-python">Passing generated trees through Python</a></li><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 4 4 1-menu"><li class="menu title"><a href="changes-4.4.1.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="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">Why lxml?</h1>
 
 <div class="contents topic" id="contents">
 <p class="topic-title first">Contents</p>
@@ -82,7 +82,7 @@ having to learn new things -- XML is complicated enough.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2019-07-27.
+Generated on: 2019-08-11.
 
 </div>
 </body>
index 6529e1c..0d80db0 100644 (file)
@@ -27,7 +27,7 @@ function hide_menu() {
 </script><meta content="width=device-width, initial-scale=1" name="viewport" /></head>
 <body onclick="hide_menu()">
 <div class="document" id="how-to-read-the-source-of-lxml">
-<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><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#where-to-get-it">Where to get it</a></li><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-dev-sources">Building lxml from dev 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#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on 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></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#passing-generated-trees-through-python">Passing generated trees through Python</a></li><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 4 4 0-menu"><li class="menu title"><a href="changes-4.4.0.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="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">How to read the source of lxml</h1>
+<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><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#where-to-get-it">Where to get it</a></li><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-dev-sources">Building lxml from dev 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#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on 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></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#passing-generated-trees-through-python">Passing generated trees through Python</a></li><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 4 4 1-menu"><li class="menu title"><a href="changes-4.4.1.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="/sitemap.html">Sitemap</a></li></ul></div></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" />
@@ -286,7 +286,7 @@ implemented in pure Python.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2019-07-27.
+Generated on: 2019-08-11.
 
 </div>
 </body>
index 861c363..049dc00 100644 (file)
@@ -25,7 +25,7 @@ function hide_menu() {
 </script><meta content="width=device-width, initial-scale=1" name="viewport" /></head>
 <body onclick="hide_menu()">
 <div class="document" id="lxml-html">
-<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><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#where-to-get-it">Where to get it</a></li><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-dev-sources">Building lxml from dev 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#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on 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></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#passing-generated-trees-through-python">Passing generated trees through Python</a></li><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 4 4 0-menu"><li class="menu title"><a href="changes-4.4.0.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="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">lxml.html</h1>
+<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><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#where-to-get-it">Where to get it</a></li><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-dev-sources">Building lxml from dev 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#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on 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></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#passing-generated-trees-through-python">Passing generated trees through Python</a></li><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 4 4 1-menu"><li class="menu title"><a href="changes-4.4.1.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="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">lxml.html</h1>
 <table class="docinfo" frame="void" rules="none">
 <col class="docinfo-name" />
 <col class="docinfo-content" />
@@ -696,7 +696,7 @@ microformat.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2019-07-27.
+Generated on: 2019-08-11.
 
 </div>
 </body>
index 11ed672..26cf42d 100644 (file)
@@ -25,7 +25,7 @@ function hide_menu() {
 </script><meta content="width=device-width, initial-scale=1" name="viewport" /></head>
 <body onclick="hide_menu()">
 <div class="document" id="lxml-objectify">
-<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><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#where-to-get-it">Where to get it</a></li><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-dev-sources">Building lxml from dev 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#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on 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></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#passing-generated-trees-through-python">Passing generated trees through Python</a></li><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 4 4 0-menu"><li class="menu title"><a href="changes-4.4.0.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="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">lxml.objectify</h1>
+<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><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#where-to-get-it">Where to get it</a></li><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-dev-sources">Building lxml from dev 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#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on 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></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#passing-generated-trees-through-python">Passing generated trees through Python</a></li><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 4 4 1-menu"><li class="menu title"><a href="changes-4.4.1.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="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">lxml.objectify</h1>
 <table class="docinfo" frame="void" rules="none">
 <col class="docinfo-name" />
 <col class="docinfo-content" />
@@ -1165,7 +1165,7 @@ support any XPath expression.</li>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2019-07-27.
+Generated on: 2019-08-11.
 
 </div>
 </body>
index 18d5930..b93aafe 100644 (file)
@@ -24,7 +24,7 @@ function hide_menu() {
 </script><meta content="width=device-width, initial-scale=1" name="viewport" /></head>
 <body onclick="hide_menu()">
 <div class="document" id="parsing-xml-and-html-with-lxml">
-<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><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#where-to-get-it">Where to get it</a></li><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-dev-sources">Building lxml from dev 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#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on 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></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#passing-generated-trees-through-python">Passing generated trees through Python</a></li><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 4 4 0-menu"><li class="menu title"><a href="changes-4.4.0.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="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">Parsing XML and HTML with lxml</h1>
+<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><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#where-to-get-it">Where to get it</a></li><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-dev-sources">Building lxml from dev 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#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on 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></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#passing-generated-trees-through-python">Passing generated trees through Python</a></li><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 4 4 1-menu"><li class="menu title"><a href="changes-4.4.1.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="/sitemap.html">Sitemap</a></li></ul></div></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
@@ -893,7 +893,7 @@ with UTF-8 is also considerably faster in most cases.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2019-07-27.
+Generated on: 2019-08-11.
 
 </div>
 </body>
index 636f111..9ebbfc4 100644 (file)
@@ -27,7 +27,7 @@ function hide_menu() {
 </script><meta content="width=device-width, initial-scale=1" name="viewport" /></head>
 <body onclick="hide_menu()">
 <div class="document" id="benchmarks-and-speed">
-<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><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#where-to-get-it">Where to get it</a></li><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-dev-sources">Building lxml from dev 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#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on 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></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#passing-generated-trees-through-python">Passing generated trees through Python</a></li><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 4 4 0-menu"><li class="menu title"><a href="changes-4.4.0.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="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">Benchmarks and Speed</h1>
+<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><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#where-to-get-it">Where to get it</a></li><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-dev-sources">Building lxml from dev 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#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on 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></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#passing-generated-trees-through-python">Passing generated trees through Python</a></li><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 4 4 1-menu"><li class="menu title"><a href="changes-4.4.1.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="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">Benchmarks and Speed</h1>
 <table class="docinfo" frame="void" rules="none">
 <col class="docinfo-name" />
 <col class="docinfo-content" />
@@ -798,7 +798,7 @@ random.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2019-07-27.
+Generated on: 2019-08-11.
 
 </div>
 </body>
index b7268a1..a41f643 100644 (file)
@@ -24,7 +24,7 @@ function hide_menu() {
 </script><meta content="width=device-width, initial-scale=1" name="viewport" /></head>
 <body onclick="hide_menu()">
 <div class="document" id="document-loading-and-url-resolving">
-<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><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#where-to-get-it">Where to get it</a></li><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-dev-sources">Building lxml from dev 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#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on 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></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#passing-generated-trees-through-python">Passing generated trees through Python</a></li><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 4 4 0-menu"><li class="menu title"><a href="changes-4.4.0.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="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">Document loading and URL resolving</h1>
+<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><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#where-to-get-it">Where to get it</a></li><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-dev-sources">Building lxml from dev 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#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on 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></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#passing-generated-trees-through-python">Passing generated trees through Python</a></li><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 4 4 1-menu"><li class="menu title"><a href="changes-4.4.1.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="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">Document loading and URL resolving</h1>
 
 <div class="contents topic" id="contents">
 <p class="topic-title first">Contents</p>
@@ -250,7 +250,7 @@ documents or raises exceptions if access is denied.</li>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2019-07-27.
+Generated on: 2019-08-11.
 
 </div>
 </body>
index 6e69e05..e66495e 100644 (file)
@@ -24,7 +24,7 @@ function hide_menu() {
 </script><meta content="width=device-width, initial-scale=1" name="viewport" /></head>
 <body onclick="hide_menu()">
 <div class="document" id="sax-support">
-<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><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#where-to-get-it">Where to get it</a></li><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-dev-sources">Building lxml from dev 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#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on 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></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#passing-generated-trees-through-python">Passing generated trees through Python</a></li><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 4 4 0-menu"><li class="menu title"><a href="changes-4.4.0.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="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">Sax support</h1>
+<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><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#where-to-get-it">Where to get it</a></li><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-dev-sources">Building lxml from dev 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#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on 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></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#passing-generated-trees-through-python">Passing generated trees through Python</a></li><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 4 4 1-menu"><li class="menu title"><a href="changes-4.4.1.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="/sitemap.html">Sitemap</a></li></ul></div></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
@@ -124,7 +124,7 @@ DOM implementation cannot generate SAX events from a DOM tree.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2019-07-27.
+Generated on: 2019-08-11.
 
 </div>
 </body>
index f1263bf..bd26440 100644 (file)
@@ -8,5 +8,5 @@
   </head>
   <body>
     <h1>Sitemap of lxml.de - Processing XML and HTML with Python</h1>
-  <div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><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#where-to-get-it">Where to get it</a></li><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-dev-sources">Building lxml from dev 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#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on 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></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#passing-generated-trees-through-python">Passing generated trees through Python</a></li><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 4 4 0-menu"><li class="menu title"><a href="changes-4.4.0.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></ul><li><a href="http://lxml.de/files/">Download files</a></li></div></div></body>
+  <div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><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#where-to-get-it">Where to get it</a></li><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-dev-sources">Building lxml from dev 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#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on 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></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#passing-generated-trees-through-python">Passing generated trees through Python</a></li><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 4 4 1-menu"><li class="menu title"><a href="changes-4.4.1.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></ul><li><a href="http://lxml.de/files/">Download files</a></li></div></div></body>
 </html>
\ No newline at end of file
index 6cca1e0..5f278fd 100644 (file)
@@ -27,7 +27,7 @@ function hide_menu() {
 </script><meta content="width=device-width, initial-scale=1" name="viewport" /></head>
 <body onclick="hide_menu()">
 <div class="document" id="the-lxml-etree-tutorial">
-<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><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#where-to-get-it">Where to get it</a></li><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-dev-sources">Building lxml from dev 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#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on 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></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#passing-generated-trees-through-python">Passing generated trees through Python</a></li><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 4 4 0-menu"><li class="menu title"><a href="changes-4.4.0.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="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">The lxml.etree Tutorial</h1>
+<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><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#where-to-get-it">Where to get it</a></li><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-dev-sources">Building lxml from dev 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#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on 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></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#passing-generated-trees-through-python">Passing generated trees through Python</a></li><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 4 4 1-menu"><li class="menu title"><a href="changes-4.4.1.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="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">The lxml.etree Tutorial</h1>
 <table class="docinfo" frame="void" rules="none">
 <col class="docinfo-name" />
 <col class="docinfo-content" />
@@ -1184,7 +1184,7 @@ whereas the other two examples would raise a <tt class="docutils literal">StopIt
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2019-07-27.
+Generated on: 2019-08-11.
 
 </div>
 </body>
index f98c2d4..a69bba7 100644 (file)
@@ -24,7 +24,7 @@ function hide_menu() {
 </script><meta content="width=device-width, initial-scale=1" name="viewport" /></head>
 <body onclick="hide_menu()">
 <div class="document" id="validation-with-lxml">
-<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><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#where-to-get-it">Where to get it</a></li><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-dev-sources">Building lxml from dev 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#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on 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></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#passing-generated-trees-through-python">Passing generated trees through Python</a></li><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 4 4 0-menu"><li class="menu title"><a href="changes-4.4.0.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="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">Validation with lxml</h1>
+<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><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#where-to-get-it">Where to get it</a></li><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-dev-sources">Building lxml from dev 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#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on 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></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#passing-generated-trees-through-python">Passing generated trees through Python</a></li><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 4 4 1-menu"><li class="menu title"><a href="changes-4.4.1.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="/sitemap.html">Sitemap</a></li></ul></div></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
@@ -556,7 +556,7 @@ reporting during validation.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2019-07-27.
+Generated on: 2019-08-11.
 
 </div>
 </body>
index b270adc..1f65b34 100644 (file)
@@ -24,7 +24,7 @@ function hide_menu() {
 </script><meta content="width=device-width, initial-scale=1" name="viewport" /></head>
 <body onclick="hide_menu()">
 <div class="document" id="xpath-and-xslt-with-lxml">
-<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><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#where-to-get-it">Where to get it</a></li><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-dev-sources">Building lxml from dev 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#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on 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></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#passing-generated-trees-through-python">Passing generated trees through Python</a></li><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 4 4 0-menu"><li class="menu title"><a href="changes-4.4.0.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="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">XPath and XSLT with lxml</h1>
+<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><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#where-to-get-it">Where to get it</a></li><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-dev-sources">Building lxml from dev 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#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on 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></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#passing-generated-trees-through-python">Passing generated trees through Python</a></li><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 4 4 1-menu"><li class="menu title"><a href="changes-4.4.1.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="/sitemap.html">Sitemap</a></li></ul></div></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>
@@ -632,7 +632,7 @@ If you want to free it from memory, just do:</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2019-07-27.
+Generated on: 2019-08-11.
 
 </div>
 </body>
index a38aa3d..9497052 100644 (file)
@@ -159,8 +159,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 4.4.0`_, released 2019-07-27
-(`changes for 4.4.0`_).  `Older versions <#old-versions>`_
+The latest version is `lxml 4.4.1`_, released 2019-08-11
+(`changes for 4.4.1`_).  `Older versions <#old-versions>`_
 are listed below.
 
 Please take a look at the
@@ -254,7 +254,9 @@ See the websites of lxml
 ..
    and the `latest in-development version <http://lxml.de/dev/>`_.
 
-.. _`PDF documentation`: lxmldoc-4.4.0.pdf
+.. _`PDF documentation`: lxmldoc-4.4.1.pdf
+
+* `lxml 4.4.1`_, released 2019-08-11 (`changes for 4.4.1`_)
 
 * `lxml 4.4.0`_, released 2019-07-27 (`changes for 4.4.0`_)
 
@@ -272,6 +274,7 @@ See the websites of lxml
 
 * `older releases <http://lxml.de/4.2/#old-versions>`_
 
+.. _`lxml 4.4.1`: /files/lxml-4.4.1.tgz
 .. _`lxml 4.4.0`: /files/lxml-4.4.0.tgz
 .. _`lxml 4.3.5`: /files/lxml-4.3.5.tgz
 .. _`lxml 4.3.4`: /files/lxml-4.3.4.tgz
@@ -280,6 +283,7 @@ See the websites of lxml
 .. _`lxml 4.3.1`: /files/lxml-4.3.1.tgz
 .. _`lxml 4.3.0`: /files/lxml-4.3.0.tgz
 
+.. _`changes for 4.4.1`: /changes-4.4.1.html
 .. _`changes for 4.4.0`: /changes-4.4.0.html
 .. _`changes for 4.3.5`: /changes-4.3.5.html
 .. _`changes for 4.3.4`: /changes-4.3.4.html
index d61a771..03b9edb 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -56,6 +56,9 @@ if versioninfo.is_pre_release():
 extra_options = {}
 if 'setuptools' in sys.modules:
     extra_options['zip_safe'] = False
+    extra_options['python_requires'] = (
+        # NOTE: keep in sync with Trove classifier list below.
+        '>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, != 3.4.*')
 
     try:
         import pkg_resources
@@ -222,10 +225,10 @@ an appropriate version of Cython installed.
     'Intended Audience :: Information Technology',
     'License :: OSI Approved :: BSD License',
     'Programming Language :: Cython',
+    # NOTE: keep in sync with 'python_requires' list above.
     'Programming Language :: Python :: 2',
     'Programming Language :: Python :: 2.7',
     'Programming Language :: Python :: 3',
-    'Programming Language :: Python :: 3.4',
     'Programming Language :: Python :: 3.5',
     'Programming Language :: Python :: 3.6',
     'Programming Language :: Python :: 3.7',
index 3c28354..32ab494 100644 (file)
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: lxml
-Version: 4.4.0
+Version: 4.4.1
 Summary: Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API.
 Home-page: http://lxml.de/
 Author: lxml dev team
@@ -38,90 +38,16 @@ 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.
         
-        4.4.0 (2019-07-27)
+        4.4.1 (2019-08-11)
         ==================
         
-        Features added
-        --------------
-        
-        * ``Element.clear()`` accepts a new keyword argument ``keep_tail=True`` to
-          clear everything but the tail text.  This is helpful in some document-style
-          use cases.
-        
-        * When creating attributes or namespaces from a dict in Python 3.6+, lxml now
-          preserves the original insertion order of that dict, instead of always sorting
-          the items by name.  A similar change was made for ElementTree in CPython 3.8.
-          See https://bugs.python.org/issue34160
-        
-        * Integer elements in ``lxml.objectify`` implement the ``__index__()`` special method.
-        
-        * GH#269: Read-only elements in XSLT were missing the ``nsmap`` property.
-          Original patch by Jan Pazdziora.
-        
-        * ElementInclude can now restrict the maximum inclusion depth via a ``max_depth``
-          argument to prevent content explosion.  It is limited to 6 by default.
-        
-        * The ``target`` object of the XMLParser can have ``start_ns()`` and ``end_ns()``
-          callback methods to listen to namespace declarations.
-        
-        * The ``TreeBuilder`` has new arguments ``comment_factory`` and ``pi_factory`` to
-          pass factories for creating comments and processing instructions, as well as
-          flag arguments ``insert_comments`` and ``insert_pis`` to discard them from the
-          tree when set to false.
-        
-        * A `C14N 2.0 <https://www.w3.org/TR/xml-c14n2/>`_ implementation was added as
-          ``etree.canonicalize()``, a corresponding ``C14NWriterTarget`` class, and
-          a ``c14n2`` serialisation method.
-        
         Bugs fixed
         ----------
         
-        * When writing to file paths that contain the URL escape character '%', the file
-          path could wrongly be mangled by URL unescaping and thus write to a different
-          file or directory.  Code that writes to file paths that are provided by untrusted
-          sources, but that must work with previous versions of lxml, should best either
-          reject paths that contain '%' characters, or otherwise make sure that the path
-          does not contain maliciously injected '%XX' URL hex escapes for paths like '../'.
-        
-        * Assigning to Element child slices with negative step could insert the slice at
-          the wrong position, starting too far on the left.
-        
-        * Assigning to Element child slices with overly large step size could take very
-          long, regardless of the length of the actual slice.
-        
-        * Assigning to Element child slices of the wrong size could sometimes fail to
-          raise a ValueError (like a list assignment would) and instead assign outside
-          of the original slice bounds or leave parts of it unreplaced.
-        
-        * The ``comment`` and ``pi`` events in ``iterwalk()`` were never triggered, and
-          instead, comments and processing instructions in the tree were reported as
-          ``start`` elements.  Also, when walking an ElementTree (as opposed to its root
-          element), comments and PIs outside of the root element are now reported.
-        
-        * LP#1827833: The RelaxNG compact syntax support was broken with recent versions
-          of ``rnc2rng``.
-        
-        * LP#1758553: The HTML elements ``source`` and ``track`` were added to the list
-          of empty tags in ``lxml.html.defs``.
-        
-        * Registering a prefix other than "xml" for the XML namespace is now rejected.
-        
-        * Failing to write XSLT output to a file could raise a misleading exception.
-          It now raises ``IOError``.
-        
-        Other changes
-        -------------
-        
-        * Support for Python 3.4 was removed.
-        
-        * When using ``Element.find*()`` with prefix-namespace mappings, the empty string
-          is now accepted to define a default namespace, in addition to the previously
-          supported ``None`` prefix.  Empty strings are more convenient since they keep
-          all prefix keys in a namespace dict strings, which simplifies sorting etc.
+        * LP#1838252: The order of an OrderedDict was lost in 4.4.0 when passing it as
+          attrib mapping during element creation.
         
-        * The ``ElementTree.write_c14n()`` method has been deprecated in favour of the
-          long preferred ``ElementTree.write(f, method="c14n")``.  It will be removed
-          in a future release.
+        * LP#1838521: The package metadata now lists the supported Python versions.
         
         
         
@@ -134,7 +60,6 @@ Classifier: Programming Language :: Cython
 Classifier: Programming Language :: Python :: 2
 Classifier: Programming Language :: Python :: 2.7
 Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.4
 Classifier: Programming Language :: Python :: 3.5
 Classifier: Programming Language :: Python :: 3.6
 Classifier: Programming Language :: Python :: 3.7
@@ -143,6 +68,7 @@ Classifier: Operating System :: OS Independent
 Classifier: Topic :: Text Processing :: Markup :: HTML
 Classifier: Topic :: Text Processing :: Markup :: XML
 Classifier: Topic :: Software Development :: Libraries :: Python Modules
+Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, != 3.4.*
 Provides-Extra: cssselect
 Provides-Extra: html5
 Provides-Extra: htmlsoup
index 1214f2c..8fe5d7d 100644 (file)
@@ -56,7 +56,7 @@ doc/html/FAQ.html
 doc/html/api.html
 doc/html/build.html
 doc/html/capi.html
-doc/html/changes-4.4.0.html
+doc/html/changes-4.4.1.html
 doc/html/compatibility.html
 doc/html/credits.html
 doc/html/cssselect.html
@@ -854,6 +854,7 @@ src/lxml/tests/c14n-20/out_inNsXml_c14nDefault.xml
 src/lxml/tests/c14n-20/out_inNsXml_c14nPrefix.xml
 src/lxml/tests/c14n-20/out_inNsXml_c14nPrefixQname.xml
 src/lxml/tests/c14n-20/out_inNsXml_c14nQname.xml
+src/lxml/tests/c14n-20/world.txt
 src/lxml/tests/include/test_xinclude.xml
 tools/xpathgrep.py
 tools/manylinux/build-wheels.sh
\ No newline at end of file
index d54bf8d..a66f127 100644 (file)
@@ -292,17 +292,12 @@ cdef _iter_attrib(attrib):
     Create a reproducibly ordered iterable from an attrib mapping.
     Tries to preserve an existing order and sorts if it assumes no order.
     """
-    # attrib will usually be a plain unordered dict
-    if isinstance(attrib, dict):
-        if python.PY_VERSION_HEX >= 0x03060000:
-            # dicts are insertion-ordered in Py3.6+ => keep the user provided order.
-            return attrib.items()
-        return sorted(attrib.items())
-    elif isinstance(attrib, (_Attrib, OrderedDict)):
+    # dicts are insertion-ordered in Py3.6+ => keep the user provided order.
+    if python.PY_VERSION_HEX >= 0x03060000 and isinstance(attrib, dict) or (
+            isinstance(attrib, (_Attrib, OrderedDict))):
         return attrib.items()
-    else:
-        # assume it's an unordered mapping of some kind
-        return sorted(attrib.items())
+    # assume it's an unordered mapping of some kind
+    return sorted(attrib.items())
 
 
 cdef _initNodeAttributes(xmlNode* c_node, _Document doc, attrib, dict extra):
index 77c7202..4deb95b 100644 (file)
@@ -5,90 +5,90 @@
     "distutils": {
         "define_macros": [
             [
-                "CYTHON_CLINE_IN_TRACEBACK",
+                "CYTHON_CLINE_IN_TRACEBACK", 
                 "0"
             ]
-        ],
+        ], 
         "depends": [
-            "/usr/include/libxml2/libxml/HTMLtree.h",
-            "/usr/include/libxml2/libxml/chvalid.h",
-            "/usr/include/libxml2/libxml/encoding.h",
-            "/usr/include/libxml2/libxml/globals.h",
-            "/usr/include/libxml2/libxml/hash.h",
-            "/usr/include/libxml2/libxml/tree.h",
-            "/usr/include/libxml2/libxml/uri.h",
-            "/usr/include/libxml2/libxml/valid.h",
-            "/usr/include/libxml2/libxml/xmlIO.h",
-            "/usr/include/libxml2/libxml/xmlmemory.h",
-            "/usr/include/libxml2/libxml/xmlsave.h",
-            "/usr/include/libxml2/libxml/xmlstring.h",
-            "/usr/include/libxml2/libxml/xmlversion.h",
-            "src/lxml/apihelpers.pxi",
-            "src/lxml/classlookup.pxi",
-            "src/lxml/cleanup.pxi",
-            "src/lxml/debug.pxi",
-            "src/lxml/docloader.pxi",
-            "src/lxml/dtd.pxi",
-            "src/lxml/extensions.pxi",
-            "src/lxml/includes/__init__.pxd",
-            "src/lxml/includes/c14n.pxd",
-            "src/lxml/includes/config.pxd",
-            "src/lxml/includes/dtdvalid.pxd",
-            "src/lxml/includes/etree_defs.h",
-            "src/lxml/includes/htmlparser.pxd",
-            "src/lxml/includes/lxml-version.h",
-            "src/lxml/includes/relaxng.pxd",
-            "src/lxml/includes/schematron.pxd",
-            "src/lxml/includes/tree.pxd",
-            "src/lxml/includes/uri.pxd",
-            "src/lxml/includes/xinclude.pxd",
-            "src/lxml/includes/xmlerror.pxd",
-            "src/lxml/includes/xmlparser.pxd",
-            "src/lxml/includes/xmlschema.pxd",
-            "src/lxml/includes/xpath.pxd",
-            "src/lxml/includes/xslt.pxd",
-            "src/lxml/iterparse.pxi",
-            "src/lxml/lxml_endian.h",
-            "src/lxml/nsclasses.pxi",
-            "src/lxml/parser.pxi",
-            "src/lxml/parsertarget.pxi",
-            "src/lxml/proxy.pxi",
-            "src/lxml/public-api.pxi",
-            "src/lxml/readonlytree.pxi",
-            "src/lxml/relaxng.pxi",
-            "src/lxml/saxparser.pxi",
-            "src/lxml/schematron.pxi",
-            "src/lxml/serializer.pxi",
-            "src/lxml/xinclude.pxi",
-            "src/lxml/xmlerror.pxi",
-            "src/lxml/xmlid.pxi",
-            "src/lxml/xmlschema.pxi",
-            "src/lxml/xpath.pxi",
-            "src/lxml/xslt.pxi",
+            "/usr/include/libxml2/libxml/HTMLtree.h", 
+            "/usr/include/libxml2/libxml/chvalid.h", 
+            "/usr/include/libxml2/libxml/encoding.h", 
+            "/usr/include/libxml2/libxml/globals.h", 
+            "/usr/include/libxml2/libxml/hash.h", 
+            "/usr/include/libxml2/libxml/tree.h", 
+            "/usr/include/libxml2/libxml/uri.h", 
+            "/usr/include/libxml2/libxml/valid.h", 
+            "/usr/include/libxml2/libxml/xmlIO.h", 
+            "/usr/include/libxml2/libxml/xmlmemory.h", 
+            "/usr/include/libxml2/libxml/xmlsave.h", 
+            "/usr/include/libxml2/libxml/xmlstring.h", 
+            "/usr/include/libxml2/libxml/xmlversion.h", 
+            "src/lxml/apihelpers.pxi", 
+            "src/lxml/classlookup.pxi", 
+            "src/lxml/cleanup.pxi", 
+            "src/lxml/debug.pxi", 
+            "src/lxml/docloader.pxi", 
+            "src/lxml/dtd.pxi", 
+            "src/lxml/extensions.pxi", 
+            "src/lxml/includes/__init__.pxd", 
+            "src/lxml/includes/c14n.pxd", 
+            "src/lxml/includes/config.pxd", 
+            "src/lxml/includes/dtdvalid.pxd", 
+            "src/lxml/includes/etree_defs.h", 
+            "src/lxml/includes/htmlparser.pxd", 
+            "src/lxml/includes/lxml-version.h", 
+            "src/lxml/includes/relaxng.pxd", 
+            "src/lxml/includes/schematron.pxd", 
+            "src/lxml/includes/tree.pxd", 
+            "src/lxml/includes/uri.pxd", 
+            "src/lxml/includes/xinclude.pxd", 
+            "src/lxml/includes/xmlerror.pxd", 
+            "src/lxml/includes/xmlparser.pxd", 
+            "src/lxml/includes/xmlschema.pxd", 
+            "src/lxml/includes/xpath.pxd", 
+            "src/lxml/includes/xslt.pxd", 
+            "src/lxml/iterparse.pxi", 
+            "src/lxml/lxml_endian.h", 
+            "src/lxml/nsclasses.pxi", 
+            "src/lxml/parser.pxi", 
+            "src/lxml/parsertarget.pxi", 
+            "src/lxml/proxy.pxi", 
+            "src/lxml/public-api.pxi", 
+            "src/lxml/readonlytree.pxi", 
+            "src/lxml/relaxng.pxi", 
+            "src/lxml/saxparser.pxi", 
+            "src/lxml/schematron.pxi", 
+            "src/lxml/serializer.pxi", 
+            "src/lxml/xinclude.pxi", 
+            "src/lxml/xmlerror.pxi", 
+            "src/lxml/xmlid.pxi", 
+            "src/lxml/xmlschema.pxi", 
+            "src/lxml/xpath.pxi", 
+            "src/lxml/xslt.pxi", 
             "src/lxml/xsltext.pxi"
-        ],
+        ], 
         "extra_compile_args": [
             "-w"
-        ],
+        ], 
         "include_dirs": [
-            "src/lxml",
-            "src/lxml/includes",
-            "/usr/include/libxml2",
+            "src/lxml", 
+            "src/lxml/includes", 
+            "/usr/include/libxml2", 
             "src"
-        ],
+        ], 
         "libraries": [
-            "xslt",
-            "exslt",
-            "xml2",
-            "rt",
-            "z",
+            "xslt", 
+            "exslt", 
+            "xml2", 
+            "rt", 
+            "z", 
             "m"
-        ],
-        "name": "lxml.etree",
+        ], 
+        "name": "lxml.etree", 
         "sources": [
             "src/lxml/etree.pyx"
         ]
-    },
+    }, 
     "module_name": "lxml.etree"
 }
 END: Cython Metadata */
@@ -1161,7 +1161,7 @@ struct __pyx_opt_args_4lxml_5etree_16_MultiTagMatcher_cacheTags;
 struct __pyx_opt_args_4lxml_5etree_16C14NWriterTarget__qname;
 struct __pyx_opt_args_4lxml_5etree_16C14NWriterTarget__start;
 
-/* "src/lxml/apihelpers.pxi":1548
+/* "src/lxml/apihelpers.pxi":1543
  * 
  * 
  * cdef enum:             # <<<<<<<<<<<<<<
@@ -1344,7 +1344,7 @@ struct __pyx_opt_args_4lxml_5etree__adoptForeignDoc {
   int is_owned;
 };
 
-/* "src/lxml/apihelpers.pxi":350
+/* "src/lxml/apihelpers.pxi":345
  * 
  * 
  * ctypedef struct _ns_node_ref:             # <<<<<<<<<<<<<<
@@ -22218,215 +22218,142 @@ static PyObject *__pyx_f_4lxml_5etree__iter_attrib(PyObject *__pyx_v_attrib) {
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
   int __pyx_t_2;
-  PyObject *__pyx_t_3 = NULL;
+  int __pyx_t_3;
   PyObject *__pyx_t_4 = NULL;
-  PyObject *__pyx_t_5 = NULL;
+  int __pyx_t_5;
   PyObject *__pyx_t_6 = NULL;
-  int __pyx_t_7;
-  int __pyx_t_8;
+  PyObject *__pyx_t_7 = NULL;
+  PyObject *__pyx_t_8 = NULL;
+  int __pyx_t_9;
   __Pyx_RefNannySetupContext("_iter_attrib", 0);
 
   /* "src/lxml/apihelpers.pxi":296
  *     """
- *     # attrib will usually be a plain unordered dict
- *     if isinstance(attrib, dict):             # <<<<<<<<<<<<<<
- *         if python.PY_VERSION_HEX >= 0x03060000:
- *             # dicts are insertion-ordered in Py3.6+ => keep the user provided order.
- */
-  __pyx_t_1 = PyDict_Check(__pyx_v_attrib); 
-  __pyx_t_2 = (__pyx_t_1 != 0);
-  if (__pyx_t_2) {
-
-    /* "src/lxml/apihelpers.pxi":297
- *     # attrib will usually be a plain unordered dict
- *     if isinstance(attrib, dict):
- *         if python.PY_VERSION_HEX >= 0x03060000:             # <<<<<<<<<<<<<<
- *             # dicts are insertion-ordered in Py3.6+ => keep the user provided order.
- *             return attrib.items()
- */
-    __pyx_t_2 = ((PY_VERSION_HEX >= 0x03060000) != 0);
-    if (__pyx_t_2) {
-
-      /* "src/lxml/apihelpers.pxi":299
- *         if python.PY_VERSION_HEX >= 0x03060000:
- *             # dicts are insertion-ordered in Py3.6+ => keep the user provided order.
- *             return attrib.items()             # <<<<<<<<<<<<<<
- *         return sorted(attrib.items())
- *     elif isinstance(attrib, (_Attrib, OrderedDict)):
- */
-      __Pyx_XDECREF(__pyx_r);
-      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_attrib, __pyx_n_s_items); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 299, __pyx_L1_error)
-      __Pyx_GOTREF(__pyx_t_4);
-      __pyx_t_5 = NULL;
-      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
-        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
-        if (likely(__pyx_t_5)) {
-          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
-          __Pyx_INCREF(__pyx_t_5);
-          __Pyx_INCREF(function);
-          __Pyx_DECREF_SET(__pyx_t_4, function);
-        }
-      }
-      __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_4);
-      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
-      if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 299, __pyx_L1_error)
-      __Pyx_GOTREF(__pyx_t_3);
-      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-      __pyx_r = __pyx_t_3;
-      __pyx_t_3 = 0;
-      goto __pyx_L0;
-
-      /* "src/lxml/apihelpers.pxi":297
- *     # attrib will usually be a plain unordered dict
- *     if isinstance(attrib, dict):
- *         if python.PY_VERSION_HEX >= 0x03060000:             # <<<<<<<<<<<<<<
- *             # dicts are insertion-ordered in Py3.6+ => keep the user provided order.
- *             return attrib.items()
- */
-    }
-
-    /* "src/lxml/apihelpers.pxi":300
- *             # dicts are insertion-ordered in Py3.6+ => keep the user provided order.
- *             return attrib.items()
- *         return sorted(attrib.items())             # <<<<<<<<<<<<<<
- *     elif isinstance(attrib, (_Attrib, OrderedDict)):
+ *     # dicts are insertion-ordered in Py3.6+ => keep the user provided order.
+ *     if python.PY_VERSION_HEX >= 0x03060000 and isinstance(attrib, dict) or (             # <<<<<<<<<<<<<<
+ *             isinstance(attrib, (_Attrib, OrderedDict))):
  *         return attrib.items()
  */
-    __Pyx_XDECREF(__pyx_r);
-    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_attrib, __pyx_n_s_items); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 300, __pyx_L1_error)
-    __Pyx_GOTREF(__pyx_t_5);
-    __pyx_t_6 = NULL;
-    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
-      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
-      if (likely(__pyx_t_6)) {
-        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
-        __Pyx_INCREF(__pyx_t_6);
-        __Pyx_INCREF(function);
-        __Pyx_DECREF_SET(__pyx_t_5, function);
-      }
-    }
-    __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_5);
-    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
-    if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 300, __pyx_L1_error)
-    __Pyx_GOTREF(__pyx_t_4);
-    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-    __pyx_t_5 = PySequence_List(__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 300, __pyx_L1_error)
-    __Pyx_GOTREF(__pyx_t_5);
-    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-    __pyx_t_3 = ((PyObject*)__pyx_t_5);
-    __pyx_t_5 = 0;
-    __pyx_t_7 = PyList_Sort(__pyx_t_3); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(5, 300, __pyx_L1_error)
-    __pyx_r = __pyx_t_3;
-    __pyx_t_3 = 0;
-    goto __pyx_L0;
-
-    /* "src/lxml/apihelpers.pxi":296
- *     """
- *     # attrib will usually be a plain unordered dict
- *     if isinstance(attrib, dict):             # <<<<<<<<<<<<<<
- *         if python.PY_VERSION_HEX >= 0x03060000:
- *             # dicts are insertion-ordered in Py3.6+ => keep the user provided order.
- */
+  __pyx_t_2 = ((PY_VERSION_HEX >= 0x03060000) != 0);
+  if (!__pyx_t_2) {
+    goto __pyx_L5_next_or;
+  } else {
   }
+  __pyx_t_2 = PyDict_Check(__pyx_v_attrib); 
+  __pyx_t_3 = (__pyx_t_2 != 0);
+  if (!__pyx_t_3) {
+  } else {
+    __pyx_t_1 = __pyx_t_3;
+    goto __pyx_L4_bool_binop_done;
+  }
+  __pyx_L5_next_or:;
 
-  /* "src/lxml/apihelpers.pxi":301
- *             return attrib.items()
- *         return sorted(attrib.items())
- *     elif isinstance(attrib, (_Attrib, OrderedDict)):             # <<<<<<<<<<<<<<
+  /* "src/lxml/apihelpers.pxi":297
+ *     # dicts are insertion-ordered in Py3.6+ => keep the user provided order.
+ *     if python.PY_VERSION_HEX >= 0x03060000 and isinstance(attrib, dict) or (
+ *             isinstance(attrib, (_Attrib, OrderedDict))):             # <<<<<<<<<<<<<<
  *         return attrib.items()
- *     else:
+ *     # assume it's an unordered mapping of some kind
  */
   __Pyx_INCREF(__pyx_v_4lxml_5etree_OrderedDict);
-  __pyx_t_3 = __pyx_v_4lxml_5etree_OrderedDict;
-  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_attrib, __pyx_ptype_4lxml_5etree__Attrib); 
-  __pyx_t_8 = (__pyx_t_1 != 0);
-  if (!__pyx_t_8) {
+  __pyx_t_4 = __pyx_v_4lxml_5etree_OrderedDict;
+  __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_attrib, __pyx_ptype_4lxml_5etree__Attrib); 
+  __pyx_t_5 = (__pyx_t_2 != 0);
+  if (!__pyx_t_5) {
   } else {
-    __pyx_t_2 = __pyx_t_8;
-    goto __pyx_L5_bool_binop_done;
+    __pyx_t_3 = __pyx_t_5;
+    goto __pyx_L7_bool_binop_done;
   }
-  __pyx_t_8 = PyObject_IsInstance(__pyx_v_attrib, __pyx_t_3); 
-  __pyx_t_1 = (__pyx_t_8 != 0);
-  __pyx_t_2 = __pyx_t_1;
-  __pyx_L5_bool_binop_done:;
-  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-  __pyx_t_1 = (__pyx_t_2 != 0);
+  __pyx_t_5 = PyObject_IsInstance(__pyx_v_attrib, __pyx_t_4); 
+  __pyx_t_2 = (__pyx_t_5 != 0);
+  __pyx_t_3 = __pyx_t_2;
+  __pyx_L7_bool_binop_done:;
+  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+  __pyx_t_2 = (__pyx_t_3 != 0);
+  __pyx_t_1 = __pyx_t_2;
+  __pyx_L4_bool_binop_done:;
+
+  /* "src/lxml/apihelpers.pxi":296
+ *     """
+ *     # dicts are insertion-ordered in Py3.6+ => keep the user provided order.
+ *     if python.PY_VERSION_HEX >= 0x03060000 and isinstance(attrib, dict) or (             # <<<<<<<<<<<<<<
+ *             isinstance(attrib, (_Attrib, OrderedDict))):
+ *         return attrib.items()
+ */
   if (__pyx_t_1) {
 
-    /* "src/lxml/apihelpers.pxi":302
- *         return sorted(attrib.items())
- *     elif isinstance(attrib, (_Attrib, OrderedDict)):
+    /* "src/lxml/apihelpers.pxi":298
+ *     if python.PY_VERSION_HEX >= 0x03060000 and isinstance(attrib, dict) or (
+ *             isinstance(attrib, (_Attrib, OrderedDict))):
  *         return attrib.items()             # <<<<<<<<<<<<<<
- *     else:
- *         # assume it's an unordered mapping of some kind
+ *     # assume it's an unordered mapping of some kind
+ *     return sorted(attrib.items())
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_attrib, __pyx_n_s_items); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 302, __pyx_L1_error)
-    __Pyx_GOTREF(__pyx_t_5);
-    __pyx_t_4 = NULL;
-    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
-      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
-      if (likely(__pyx_t_4)) {
-        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
-        __Pyx_INCREF(__pyx_t_4);
+    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_attrib, __pyx_n_s_items); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 298, __pyx_L1_error)
+    __Pyx_GOTREF(__pyx_t_6);
+    __pyx_t_7 = NULL;
+    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
+      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
+      if (likely(__pyx_t_7)) {
+        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
+        __Pyx_INCREF(__pyx_t_7);
         __Pyx_INCREF(function);
-        __Pyx_DECREF_SET(__pyx_t_5, function);
+        __Pyx_DECREF_SET(__pyx_t_6, function);
       }
     }
-    __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_5);
-    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
-    if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 302, __pyx_L1_error)
-    __Pyx_GOTREF(__pyx_t_3);
-    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-    __pyx_r = __pyx_t_3;
-    __pyx_t_3 = 0;
+    __pyx_t_4 = (__pyx_t_7) ? __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_7) : __Pyx_PyObject_CallNoArg(__pyx_t_6);
+    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
+    if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 298, __pyx_L1_error)
+    __Pyx_GOTREF(__pyx_t_4);
+    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+    __pyx_r = __pyx_t_4;
+    __pyx_t_4 = 0;
     goto __pyx_L0;
 
-    /* "src/lxml/apihelpers.pxi":301
- *             return attrib.items()
- *         return sorted(attrib.items())
- *     elif isinstance(attrib, (_Attrib, OrderedDict)):             # <<<<<<<<<<<<<<
+    /* "src/lxml/apihelpers.pxi":296
+ *     """
+ *     # dicts are insertion-ordered in Py3.6+ => keep the user provided order.
+ *     if python.PY_VERSION_HEX >= 0x03060000 and isinstance(attrib, dict) or (             # <<<<<<<<<<<<<<
+ *             isinstance(attrib, (_Attrib, OrderedDict))):
  *         return attrib.items()
- *     else:
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":305
- *     else:
- *         # assume it's an unordered mapping of some kind
- *         return sorted(attrib.items())             # <<<<<<<<<<<<<<
+  /* "src/lxml/apihelpers.pxi":300
+ *         return attrib.items()
+ *     # assume it's an unordered mapping of some kind
+ *     return sorted(attrib.items())             # <<<<<<<<<<<<<<
  * 
  * 
  */
-  /*else*/ {
-    __Pyx_XDECREF(__pyx_r);
-    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_attrib, __pyx_n_s_items); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 305, __pyx_L1_error)
-    __Pyx_GOTREF(__pyx_t_4);
-    __pyx_t_6 = NULL;
-    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
-      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
-      if (likely(__pyx_t_6)) {
-        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
-        __Pyx_INCREF(__pyx_t_6);
-        __Pyx_INCREF(function);
-        __Pyx_DECREF_SET(__pyx_t_4, function);
-      }
+  __Pyx_XDECREF(__pyx_r);
+  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_attrib, __pyx_n_s_items); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 300, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_7);
+  __pyx_t_8 = NULL;
+  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
+    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
+    if (likely(__pyx_t_8)) {
+      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
+      __Pyx_INCREF(__pyx_t_8);
+      __Pyx_INCREF(function);
+      __Pyx_DECREF_SET(__pyx_t_7, function);
     }
-    __pyx_t_5 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_4);
-    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
-    if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 305, __pyx_L1_error)
-    __Pyx_GOTREF(__pyx_t_5);
-    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-    __pyx_t_4 = PySequence_List(__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 305, __pyx_L1_error)
-    __Pyx_GOTREF(__pyx_t_4);
-    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-    __pyx_t_3 = ((PyObject*)__pyx_t_4);
-    __pyx_t_4 = 0;
-    __pyx_t_7 = PyList_Sort(__pyx_t_3); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(5, 305, __pyx_L1_error)
-    __pyx_r = __pyx_t_3;
-    __pyx_t_3 = 0;
-    goto __pyx_L0;
   }
+  __pyx_t_6 = (__pyx_t_8) ? __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8) : __Pyx_PyObject_CallNoArg(__pyx_t_7);
+  __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
+  if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 300, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_6);
+  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+  __pyx_t_7 = PySequence_List(__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 300, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_7);
+  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+  __pyx_t_4 = ((PyObject*)__pyx_t_7);
+  __pyx_t_7 = 0;
+  __pyx_t_9 = PyList_Sort(__pyx_t_4); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(5, 300, __pyx_L1_error)
+  __pyx_r = __pyx_t_4;
+  __pyx_t_4 = 0;
+  goto __pyx_L0;
 
   /* "src/lxml/apihelpers.pxi":290
  * 
@@ -22438,10 +22365,10 @@ static PyObject *__pyx_f_4lxml_5etree__iter_attrib(PyObject *__pyx_v_attrib) {
 
   /* function exit code */
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_XDECREF(__pyx_t_4);
-  __Pyx_XDECREF(__pyx_t_5);
   __Pyx_XDECREF(__pyx_t_6);
+  __Pyx_XDECREF(__pyx_t_7);
+  __Pyx_XDECREF(__pyx_t_8);
   __Pyx_AddTraceback("lxml.etree._iter_attrib", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -22450,7 +22377,7 @@ static PyObject *__pyx_f_4lxml_5etree__iter_attrib(PyObject *__pyx_v_attrib) {
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":308
+/* "src/lxml/apihelpers.pxi":303
  * 
  * 
  * cdef _initNodeAttributes(xmlNode* c_node, _Document doc, attrib, dict extra):             # <<<<<<<<<<<<<<
@@ -22481,7 +22408,7 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
   int __pyx_t_14;
   __Pyx_RefNannySetupContext("_initNodeAttributes", 0);
 
-  /* "src/lxml/apihelpers.pxi":313
+  /* "src/lxml/apihelpers.pxi":308
  *     cdef bint is_html
  *     cdef xmlNs* c_ns
  *     if attrib is not None and not hasattr(attrib, u'items'):             # <<<<<<<<<<<<<<
@@ -22495,13 +22422,13 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
     __pyx_t_1 = __pyx_t_3;
     goto __pyx_L4_bool_binop_done;
   }
-  __pyx_t_3 = __Pyx_HasAttr(__pyx_v_attrib, __pyx_n_u_items); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(5, 313, __pyx_L1_error)
+  __pyx_t_3 = __Pyx_HasAttr(__pyx_v_attrib, __pyx_n_u_items); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(5, 308, __pyx_L1_error)
   __pyx_t_2 = ((!(__pyx_t_3 != 0)) != 0);
   __pyx_t_1 = __pyx_t_2;
   __pyx_L4_bool_binop_done:;
   if (unlikely(__pyx_t_1)) {
 
-    /* "src/lxml/apihelpers.pxi":314
+    /* "src/lxml/apihelpers.pxi":309
  *     cdef xmlNs* c_ns
  *     if attrib is not None and not hasattr(attrib, u'items'):
  *         raise TypeError, f"Invalid attribute dictionary: {python._fqtypename(attrib).decode('utf8')}"             # <<<<<<<<<<<<<<
@@ -22509,16 +22436,16 @@ 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_ERR(5, 314, __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_ERR(5, 309, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_5);
-    __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Invalid_attribute_dictionary, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 314, __pyx_L1_error)
+    __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Invalid_attribute_dictionary, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 309, __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_ERR(5, 314, __pyx_L1_error)
+    __PYX_ERR(5, 309, __pyx_L1_error)
 
-    /* "src/lxml/apihelpers.pxi":313
+    /* "src/lxml/apihelpers.pxi":308
  *     cdef bint is_html
  *     cdef xmlNs* c_ns
  *     if attrib is not None and not hasattr(attrib, u'items'):             # <<<<<<<<<<<<<<
@@ -22527,27 +22454,27 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":315
+  /* "src/lxml/apihelpers.pxi":310
  *     if attrib is not None and not hasattr(attrib, u'items'):
  *         raise TypeError, f"Invalid attribute dictionary: {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_ERR(5, 315, __pyx_L1_error)
+  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_attrib); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(5, 310, __pyx_L1_error)
   __pyx_t_3 = ((!__pyx_t_2) != 0);
   if (__pyx_t_3) {
   } else {
     __pyx_t_1 = __pyx_t_3;
     goto __pyx_L7_bool_binop_done;
   }
-  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_extra); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(5, 315, __pyx_L1_error)
+  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_extra); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(5, 310, __pyx_L1_error)
   __pyx_t_2 = ((!__pyx_t_3) != 0);
   __pyx_t_1 = __pyx_t_2;
   __pyx_L7_bool_binop_done:;
   if (__pyx_t_1) {
 
-    /* "src/lxml/apihelpers.pxi":316
+    /* "src/lxml/apihelpers.pxi":311
  *         raise TypeError, f"Invalid attribute dictionary: {python._fqtypename(attrib).decode('utf8')}"
  *     if not attrib and not extra:
  *         return  # nothing to do             # <<<<<<<<<<<<<<
@@ -22558,7 +22485,7 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
     __pyx_r = Py_None; __Pyx_INCREF(Py_None);
     goto __pyx_L0;
 
-    /* "src/lxml/apihelpers.pxi":315
+    /* "src/lxml/apihelpers.pxi":310
  *     if attrib is not None and not hasattr(attrib, u'items'):
  *         raise TypeError, f"Invalid attribute dictionary: {python._fqtypename(attrib).decode('utf8')}"
  *     if not attrib and not extra:             # <<<<<<<<<<<<<<
@@ -22567,7 +22494,7 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":317
+  /* "src/lxml/apihelpers.pxi":312
  *     if not attrib and not extra:
  *         return  # nothing to do
  *     is_html = doc._parser._for_html             # <<<<<<<<<<<<<<
@@ -22577,29 +22504,29 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
   __pyx_t_1 = __pyx_v_doc->_parser->_for_html;
   __pyx_v_is_html = __pyx_t_1;
 
-  /* "src/lxml/apihelpers.pxi":318
+  /* "src/lxml/apihelpers.pxi":313
  *         return  # nothing to do
  *     is_html = doc._parser._for_html
  *     seen = set()             # <<<<<<<<<<<<<<
  *     if extra:
  *         if python.PY_VERSION_HEX >= 0x03060000:
  */
-  __pyx_t_6 = PySet_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 318, __pyx_L1_error)
+  __pyx_t_6 = PySet_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 313, __pyx_L1_error)
   __Pyx_GOTREF(__pyx_t_6);
   __pyx_v_seen = ((PyObject*)__pyx_t_6);
   __pyx_t_6 = 0;
 
-  /* "src/lxml/apihelpers.pxi":319
+  /* "src/lxml/apihelpers.pxi":314
  *     is_html = doc._parser._for_html
  *     seen = set()
  *     if extra:             # <<<<<<<<<<<<<<
  *         if python.PY_VERSION_HEX >= 0x03060000:
  *             for name, value in extra.items():
  */
-  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_extra); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(5, 319, __pyx_L1_error)
+  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_extra); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(5, 314, __pyx_L1_error)
   if (__pyx_t_1) {
 
-    /* "src/lxml/apihelpers.pxi":320
+    /* "src/lxml/apihelpers.pxi":315
  *     seen = set()
  *     if extra:
  *         if python.PY_VERSION_HEX >= 0x03060000:             # <<<<<<<<<<<<<<
@@ -22609,7 +22536,7 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
     __pyx_t_1 = ((PY_VERSION_HEX >= 0x03060000) != 0);
     if (__pyx_t_1) {
 
-      /* "src/lxml/apihelpers.pxi":321
+      /* "src/lxml/apihelpers.pxi":316
  *     if extra:
  *         if python.PY_VERSION_HEX >= 0x03060000:
  *             for name, value in extra.items():             # <<<<<<<<<<<<<<
@@ -22618,17 +22545,17 @@ 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 '%.30s'", "items");
-        __PYX_ERR(5, 321, __pyx_L1_error)
+        __PYX_ERR(5, 316, __pyx_L1_error)
       }
-      __pyx_t_6 = __Pyx_PyDict_Items(__pyx_v_extra); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 321, __pyx_L1_error)
+      __pyx_t_6 = __Pyx_PyDict_Items(__pyx_v_extra); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 316, __pyx_L1_error)
       __Pyx_GOTREF(__pyx_t_6);
       if (likely(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_ERR(5, 321, __pyx_L1_error)
+        __pyx_t_7 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 316, __pyx_L1_error)
         __Pyx_GOTREF(__pyx_t_5);
-        __pyx_t_8 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 321, __pyx_L1_error)
+        __pyx_t_8 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 316, __pyx_L1_error)
       }
       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
       for (;;) {
@@ -22636,17 +22563,17 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
           if (likely(PyList_CheckExact(__pyx_t_5))) {
             if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_5)) break;
             #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
-            __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_ERR(5, 321, __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_ERR(5, 316, __pyx_L1_error)
             #else
-            __pyx_t_6 = PySequence_ITEM(__pyx_t_5, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 321, __pyx_L1_error)
+            __pyx_t_6 = PySequence_ITEM(__pyx_t_5, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 316, __pyx_L1_error)
             __Pyx_GOTREF(__pyx_t_6);
             #endif
           } else {
             if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
             #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
-            __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_ERR(5, 321, __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_ERR(5, 316, __pyx_L1_error)
             #else
-            __pyx_t_6 = PySequence_ITEM(__pyx_t_5, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 321, __pyx_L1_error)
+            __pyx_t_6 = PySequence_ITEM(__pyx_t_5, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 316, __pyx_L1_error)
             __Pyx_GOTREF(__pyx_t_6);
             #endif
           }
@@ -22656,7 +22583,7 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
             PyObject* exc_type = PyErr_Occurred();
             if (exc_type) {
               if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
-              else __PYX_ERR(5, 321, __pyx_L1_error)
+              else __PYX_ERR(5, 316, __pyx_L1_error)
             }
             break;
           }
@@ -22668,7 +22595,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_ERR(5, 321, __pyx_L1_error)
+            __PYX_ERR(5, 316, __pyx_L1_error)
           }
           #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
           if (likely(PyTuple_CheckExact(sequence))) {
@@ -22681,15 +22608,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_ERR(5, 321, __pyx_L1_error)
+          __pyx_t_9 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 316, __pyx_L1_error)
           __Pyx_GOTREF(__pyx_t_9);
-          __pyx_t_10 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 321, __pyx_L1_error)
+          __pyx_t_10 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 316, __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_ERR(5, 321, __pyx_L1_error)
+          __pyx_t_11 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 316, __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;
@@ -22697,7 +22624,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_L13_unpacking_failed;
           __Pyx_GOTREF(__pyx_t_10);
-          if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_11), 2) < 0) __PYX_ERR(5, 321, __pyx_L1_error)
+          if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_11), 2) < 0) __PYX_ERR(5, 316, __pyx_L1_error)
           __pyx_t_12 = NULL;
           __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
           goto __pyx_L14_unpacking_done;
@@ -22705,7 +22632,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_ERR(5, 321, __pyx_L1_error)
+          __PYX_ERR(5, 316, __pyx_L1_error)
           __pyx_L14_unpacking_done:;
         }
         __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_9);
@@ -22713,16 +22640,16 @@ 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;
 
-        /* "src/lxml/apihelpers.pxi":322
+        /* "src/lxml/apihelpers.pxi":317
  *         if python.PY_VERSION_HEX >= 0x03060000:
  *             for name, value in extra.items():
  *                 _addAttributeToNode(c_node, doc, is_html, name, value, seen)             # <<<<<<<<<<<<<<
  *         else:
  *             for name, value in sorted(extra.items()):
  */
-        __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 == ((int)-1))) __PYX_ERR(5, 322, __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 == ((int)-1))) __PYX_ERR(5, 317, __pyx_L1_error)
 
-        /* "src/lxml/apihelpers.pxi":321
+        /* "src/lxml/apihelpers.pxi":316
  *     if extra:
  *         if python.PY_VERSION_HEX >= 0x03060000:
  *             for name, value in extra.items():             # <<<<<<<<<<<<<<
@@ -22732,7 +22659,7 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
       }
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 
-      /* "src/lxml/apihelpers.pxi":320
+      /* "src/lxml/apihelpers.pxi":315
  *     seen = set()
  *     if extra:
  *         if python.PY_VERSION_HEX >= 0x03060000:             # <<<<<<<<<<<<<<
@@ -22742,7 +22669,7 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
       goto __pyx_L10;
     }
 
-    /* "src/lxml/apihelpers.pxi":324
+    /* "src/lxml/apihelpers.pxi":319
  *                 _addAttributeToNode(c_node, doc, is_html, name, value, seen)
  *         else:
  *             for name, value in sorted(extra.items()):             # <<<<<<<<<<<<<<
@@ -22752,28 +22679,28 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
     /*else*/ {
       if (unlikely(__pyx_v_extra == Py_None)) {
         PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
-        __PYX_ERR(5, 324, __pyx_L1_error)
+        __PYX_ERR(5, 319, __pyx_L1_error)
       }
-      __pyx_t_6 = __Pyx_PyDict_Items(__pyx_v_extra); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 324, __pyx_L1_error)
+      __pyx_t_6 = __Pyx_PyDict_Items(__pyx_v_extra); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 319, __pyx_L1_error)
       __Pyx_GOTREF(__pyx_t_6);
-      __pyx_t_10 = PySequence_List(__pyx_t_6); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 324, __pyx_L1_error)
+      __pyx_t_10 = PySequence_List(__pyx_t_6); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 319, __pyx_L1_error)
       __Pyx_GOTREF(__pyx_t_10);
       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
       __pyx_t_5 = ((PyObject*)__pyx_t_10);
       __pyx_t_10 = 0;
-      __pyx_t_14 = PyList_Sort(__pyx_t_5); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(5, 324, __pyx_L1_error)
+      __pyx_t_14 = PyList_Sort(__pyx_t_5); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(5, 319, __pyx_L1_error)
       if (unlikely(__pyx_t_5 == Py_None)) {
         PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
-        __PYX_ERR(5, 324, __pyx_L1_error)
+        __PYX_ERR(5, 319, __pyx_L1_error)
       }
       __pyx_t_10 = __pyx_t_5; __Pyx_INCREF(__pyx_t_10); __pyx_t_7 = 0;
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
       for (;;) {
         if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_10)) break;
         #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
-        __pyx_t_5 = PyList_GET_ITEM(__pyx_t_10, __pyx_t_7); __Pyx_INCREF(__pyx_t_5); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(5, 324, __pyx_L1_error)
+        __pyx_t_5 = PyList_GET_ITEM(__pyx_t_10, __pyx_t_7); __Pyx_INCREF(__pyx_t_5); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(5, 319, __pyx_L1_error)
         #else
-        __pyx_t_5 = PySequence_ITEM(__pyx_t_10, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 324, __pyx_L1_error)
+        __pyx_t_5 = PySequence_ITEM(__pyx_t_10, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 319, __pyx_L1_error)
         __Pyx_GOTREF(__pyx_t_5);
         #endif
         if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
@@ -22782,7 +22709,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_ERR(5, 324, __pyx_L1_error)
+            __PYX_ERR(5, 319, __pyx_L1_error)
           }
           #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
           if (likely(PyTuple_CheckExact(sequence))) {
@@ -22795,15 +22722,15 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
           __Pyx_INCREF(__pyx_t_6);
           __Pyx_INCREF(__pyx_t_9);
           #else
-          __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 324, __pyx_L1_error)
+          __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 319, __pyx_L1_error)
           __Pyx_GOTREF(__pyx_t_6);
-          __pyx_t_9 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 324, __pyx_L1_error)
+          __pyx_t_9 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 319, __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_ERR(5, 324, __pyx_L1_error)
+          __pyx_t_11 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 319, __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;
@@ -22811,7 +22738,7 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
           __Pyx_GOTREF(__pyx_t_6);
           index = 1; __pyx_t_9 = __pyx_t_12(__pyx_t_11); if (unlikely(!__pyx_t_9)) goto __pyx_L17_unpacking_failed;
           __Pyx_GOTREF(__pyx_t_9);
-          if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_11), 2) < 0) __PYX_ERR(5, 324, __pyx_L1_error)
+          if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_11), 2) < 0) __PYX_ERR(5, 319, __pyx_L1_error)
           __pyx_t_12 = NULL;
           __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
           goto __pyx_L18_unpacking_done;
@@ -22819,7 +22746,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_ERR(5, 324, __pyx_L1_error)
+          __PYX_ERR(5, 319, __pyx_L1_error)
           __pyx_L18_unpacking_done:;
         }
         __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_6);
@@ -22827,16 +22754,16 @@ 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;
 
-        /* "src/lxml/apihelpers.pxi":325
+        /* "src/lxml/apihelpers.pxi":320
  *         else:
  *             for name, value in sorted(extra.items()):
  *                 _addAttributeToNode(c_node, doc, is_html, name, value, seen)             # <<<<<<<<<<<<<<
  *     if attrib:
  *         for name, value in _iter_attrib(attrib):
  */
-        __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 == ((int)-1))) __PYX_ERR(5, 325, __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 == ((int)-1))) __PYX_ERR(5, 320, __pyx_L1_error)
 
-        /* "src/lxml/apihelpers.pxi":324
+        /* "src/lxml/apihelpers.pxi":319
  *                 _addAttributeToNode(c_node, doc, is_html, name, value, seen)
  *         else:
  *             for name, value in sorted(extra.items()):             # <<<<<<<<<<<<<<
@@ -22848,7 +22775,7 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
     }
     __pyx_L10:;
 
-    /* "src/lxml/apihelpers.pxi":319
+    /* "src/lxml/apihelpers.pxi":314
  *     is_html = doc._parser._for_html
  *     seen = set()
  *     if extra:             # <<<<<<<<<<<<<<
@@ -22857,32 +22784,32 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":326
+  /* "src/lxml/apihelpers.pxi":321
  *             for name, value in sorted(extra.items()):
  *                 _addAttributeToNode(c_node, doc, is_html, name, value, seen)
  *     if attrib:             # <<<<<<<<<<<<<<
  *         for name, value in _iter_attrib(attrib):
  *             _addAttributeToNode(c_node, doc, is_html, name, value, seen)
  */
-  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_attrib); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(5, 326, __pyx_L1_error)
+  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_attrib); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(5, 321, __pyx_L1_error)
   if (__pyx_t_1) {
 
-    /* "src/lxml/apihelpers.pxi":327
+    /* "src/lxml/apihelpers.pxi":322
  *                 _addAttributeToNode(c_node, doc, is_html, name, value, seen)
  *     if attrib:
  *         for name, value in _iter_attrib(attrib):             # <<<<<<<<<<<<<<
  *             _addAttributeToNode(c_node, doc, is_html, name, value, seen)
  * 
  */
-    __pyx_t_10 = __pyx_f_4lxml_5etree__iter_attrib(__pyx_v_attrib); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 327, __pyx_L1_error)
+    __pyx_t_10 = __pyx_f_4lxml_5etree__iter_attrib(__pyx_v_attrib); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 322, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_10);
     if (likely(PyList_CheckExact(__pyx_t_10)) || PyTuple_CheckExact(__pyx_t_10)) {
       __pyx_t_5 = __pyx_t_10; __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_10); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 327, __pyx_L1_error)
+      __pyx_t_7 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_10); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 322, __pyx_L1_error)
       __Pyx_GOTREF(__pyx_t_5);
-      __pyx_t_8 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 327, __pyx_L1_error)
+      __pyx_t_8 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 322, __pyx_L1_error)
     }
     __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
     for (;;) {
@@ -22890,17 +22817,17 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
         if (likely(PyList_CheckExact(__pyx_t_5))) {
           if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_5)) break;
           #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
-          __pyx_t_10 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_7); __Pyx_INCREF(__pyx_t_10); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(5, 327, __pyx_L1_error)
+          __pyx_t_10 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_7); __Pyx_INCREF(__pyx_t_10); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(5, 322, __pyx_L1_error)
           #else
-          __pyx_t_10 = PySequence_ITEM(__pyx_t_5, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 327, __pyx_L1_error)
+          __pyx_t_10 = PySequence_ITEM(__pyx_t_5, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 322, __pyx_L1_error)
           __Pyx_GOTREF(__pyx_t_10);
           #endif
         } else {
           if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
           #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
-          __pyx_t_10 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_7); __Pyx_INCREF(__pyx_t_10); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(5, 327, __pyx_L1_error)
+          __pyx_t_10 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_7); __Pyx_INCREF(__pyx_t_10); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(5, 322, __pyx_L1_error)
           #else
-          __pyx_t_10 = PySequence_ITEM(__pyx_t_5, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 327, __pyx_L1_error)
+          __pyx_t_10 = PySequence_ITEM(__pyx_t_5, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 322, __pyx_L1_error)
           __Pyx_GOTREF(__pyx_t_10);
           #endif
         }
@@ -22910,7 +22837,7 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
           PyObject* exc_type = PyErr_Occurred();
           if (exc_type) {
             if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
-            else __PYX_ERR(5, 327, __pyx_L1_error)
+            else __PYX_ERR(5, 322, __pyx_L1_error)
           }
           break;
         }
@@ -22922,7 +22849,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_ERR(5, 327, __pyx_L1_error)
+          __PYX_ERR(5, 322, __pyx_L1_error)
         }
         #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
         if (likely(PyTuple_CheckExact(sequence))) {
@@ -22935,15 +22862,15 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
         __Pyx_INCREF(__pyx_t_9);
         __Pyx_INCREF(__pyx_t_6);
         #else
-        __pyx_t_9 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 327, __pyx_L1_error)
+        __pyx_t_9 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 322, __pyx_L1_error)
         __Pyx_GOTREF(__pyx_t_9);
-        __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 327, __pyx_L1_error)
+        __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 322, __pyx_L1_error)
         __Pyx_GOTREF(__pyx_t_6);
         #endif
         __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
       } else {
         Py_ssize_t index = -1;
-        __pyx_t_11 = PyObject_GetIter(__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 327, __pyx_L1_error)
+        __pyx_t_11 = PyObject_GetIter(__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 322, __pyx_L1_error)
         __Pyx_GOTREF(__pyx_t_11);
         __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
         __pyx_t_12 = Py_TYPE(__pyx_t_11)->tp_iternext;
@@ -22951,7 +22878,7 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
         __Pyx_GOTREF(__pyx_t_9);
         index = 1; __pyx_t_6 = __pyx_t_12(__pyx_t_11); if (unlikely(!__pyx_t_6)) goto __pyx_L22_unpacking_failed;
         __Pyx_GOTREF(__pyx_t_6);
-        if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_11), 2) < 0) __PYX_ERR(5, 327, __pyx_L1_error)
+        if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_11), 2) < 0) __PYX_ERR(5, 322, __pyx_L1_error)
         __pyx_t_12 = NULL;
         __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
         goto __pyx_L23_unpacking_done;
@@ -22959,7 +22886,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_ERR(5, 327, __pyx_L1_error)
+        __PYX_ERR(5, 322, __pyx_L1_error)
         __pyx_L23_unpacking_done:;
       }
       __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_9);
@@ -22967,16 +22894,16 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
       __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_6);
       __pyx_t_6 = 0;
 
-      /* "src/lxml/apihelpers.pxi":328
+      /* "src/lxml/apihelpers.pxi":323
  *     if attrib:
  *         for name, value in _iter_attrib(attrib):
  *             _addAttributeToNode(c_node, doc, is_html, name, value, seen)             # <<<<<<<<<<<<<<
  * 
  * 
  */
-      __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 == ((int)-1))) __PYX_ERR(5, 328, __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 == ((int)-1))) __PYX_ERR(5, 323, __pyx_L1_error)
 
-      /* "src/lxml/apihelpers.pxi":327
+      /* "src/lxml/apihelpers.pxi":322
  *                 _addAttributeToNode(c_node, doc, is_html, name, value, seen)
  *     if attrib:
  *         for name, value in _iter_attrib(attrib):             # <<<<<<<<<<<<<<
@@ -22986,7 +22913,7 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
     }
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 
-    /* "src/lxml/apihelpers.pxi":326
+    /* "src/lxml/apihelpers.pxi":321
  *             for name, value in sorted(extra.items()):
  *                 _addAttributeToNode(c_node, doc, is_html, name, value, seen)
  *     if attrib:             # <<<<<<<<<<<<<<
@@ -22995,7 +22922,7 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":308
+  /* "src/lxml/apihelpers.pxi":303
  * 
  * 
  * cdef _initNodeAttributes(xmlNode* c_node, _Document doc, attrib, dict extra):             # <<<<<<<<<<<<<<
@@ -23023,7 +22950,7 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":331
+/* "src/lxml/apihelpers.pxi":326
  * 
  * 
  * cdef int _addAttributeToNode(xmlNode* c_node, _Document doc, bint is_html,             # <<<<<<<<<<<<<<
@@ -23049,14 +22976,14 @@ static int __pyx_f_4lxml_5etree__addAttributeToNode(xmlNode *__pyx_v_c_node, str
   xmlNs *__pyx_t_8;
   __Pyx_RefNannySetupContext("_addAttributeToNode", 0);
 
-  /* "src/lxml/apihelpers.pxi":333
+  /* "src/lxml/apihelpers.pxi":328
  * 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_ERR(5, 333, __pyx_L1_error)
+  __pyx_t_1 = __pyx_f_4lxml_5etree__getNsTag(__pyx_v_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 328, __pyx_L1_error)
   __Pyx_GOTREF(__pyx_t_1);
   if (likely(__pyx_t_1 != Py_None)) {
     PyObject* sequence = __pyx_t_1;
@@ -23064,7 +22991,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_ERR(5, 333, __pyx_L1_error)
+      __PYX_ERR(5, 328, __pyx_L1_error)
     }
     #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
     __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); 
@@ -23072,13 +22999,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_ERR(5, 333, __pyx_L1_error)
+    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 328, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_2);
-    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 333, __pyx_L1_error)
+    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 328, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_3);
     #endif
   } else {
-    __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(5, 333, __pyx_L1_error)
+    __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(5, 328, __pyx_L1_error)
   }
   __pyx_v_ns_utf = __pyx_t_2;
   __pyx_t_2 = 0;
@@ -23088,7 +23015,7 @@ 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;
 
-  /* "src/lxml/apihelpers.pxi":334
+  /* "src/lxml/apihelpers.pxi":329
  *                              name, value, set seen_tags) except -1:
  *     ns_utf, name_utf = tag = _getNsTag(name)
  *     if tag in seen_tags:             # <<<<<<<<<<<<<<
@@ -23097,13 +23024,13 @@ static int __pyx_f_4lxml_5etree__addAttributeToNode(xmlNode *__pyx_v_c_node, str
  */
   if (unlikely(__pyx_v_seen_tags == Py_None)) {
     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
-    __PYX_ERR(5, 334, __pyx_L1_error)
+    __PYX_ERR(5, 329, __pyx_L1_error)
   }
-  __pyx_t_4 = (__Pyx_PySet_ContainsTF(__pyx_v_tag, __pyx_v_seen_tags, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(5, 334, __pyx_L1_error)
+  __pyx_t_4 = (__Pyx_PySet_ContainsTF(__pyx_v_tag, __pyx_v_seen_tags, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(5, 329, __pyx_L1_error)
   __pyx_t_5 = (__pyx_t_4 != 0);
   if (__pyx_t_5) {
 
-    /* "src/lxml/apihelpers.pxi":335
+    /* "src/lxml/apihelpers.pxi":330
  *     ns_utf, name_utf = tag = _getNsTag(name)
  *     if tag in seen_tags:
  *         return 0             # <<<<<<<<<<<<<<
@@ -23113,7 +23040,7 @@ static int __pyx_f_4lxml_5etree__addAttributeToNode(xmlNode *__pyx_v_c_node, str
     __pyx_r = 0;
     goto __pyx_L0;
 
-    /* "src/lxml/apihelpers.pxi":334
+    /* "src/lxml/apihelpers.pxi":329
  *                              name, value, set seen_tags) except -1:
  *     ns_utf, name_utf = tag = _getNsTag(name)
  *     if tag in seen_tags:             # <<<<<<<<<<<<<<
@@ -23122,7 +23049,7 @@ static int __pyx_f_4lxml_5etree__addAttributeToNode(xmlNode *__pyx_v_c_node, str
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":336
+  /* "src/lxml/apihelpers.pxi":331
  *     if tag in seen_tags:
  *         return 0
  *     seen_tags.add(tag)             # <<<<<<<<<<<<<<
@@ -23131,11 +23058,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 '%.30s'", "add");
-    __PYX_ERR(5, 336, __pyx_L1_error)
+    __PYX_ERR(5, 331, __pyx_L1_error)
   }
-  __pyx_t_6 = PySet_Add(__pyx_v_seen_tags, __pyx_v_tag); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(5, 336, __pyx_L1_error)
+  __pyx_t_6 = PySet_Add(__pyx_v_seen_tags, __pyx_v_tag); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(5, 331, __pyx_L1_error)
 
-  /* "src/lxml/apihelpers.pxi":337
+  /* "src/lxml/apihelpers.pxi":332
  *         return 0
  *     seen_tags.add(tag)
  *     if not is_html:             # <<<<<<<<<<<<<<
@@ -23145,16 +23072,16 @@ 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) {
 
-    /* "src/lxml/apihelpers.pxi":338
+    /* "src/lxml/apihelpers.pxi":333
  *     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 == ((int)-1))) __PYX_ERR(5, 338, __pyx_L1_error)
+    __pyx_t_7 = __pyx_f_4lxml_5etree__attributeValidOrRaise(__pyx_v_name_utf); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(5, 333, __pyx_L1_error)
 
-    /* "src/lxml/apihelpers.pxi":337
+    /* "src/lxml/apihelpers.pxi":332
  *         return 0
  *     seen_tags.add(tag)
  *     if not is_html:             # <<<<<<<<<<<<<<
@@ -23163,19 +23090,19 @@ static int __pyx_f_4lxml_5etree__addAttributeToNode(xmlNode *__pyx_v_c_node, str
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":339
+  /* "src/lxml/apihelpers.pxi":334
  *     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_ERR(5, 339, __pyx_L1_error)
+  __pyx_t_1 = __pyx_f_4lxml_5etree__utf8(__pyx_v_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 334, __pyx_L1_error)
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_v_value_utf = ((PyObject*)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "src/lxml/apihelpers.pxi":340
+  /* "src/lxml/apihelpers.pxi":335
  *         _attributeValidOrRaise(name_utf)
  *     value_utf = _utf8(value)
  *     if ns_utf is None:             # <<<<<<<<<<<<<<
@@ -23186,7 +23113,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) {
 
-    /* "src/lxml/apihelpers.pxi":341
+    /* "src/lxml/apihelpers.pxi":336
  *     value_utf = _utf8(value)
  *     if ns_utf is None:
  *         tree.xmlNewProp(c_node, _xcstr(name_utf), _xcstr(value_utf))             # <<<<<<<<<<<<<<
@@ -23195,7 +23122,7 @@ static int __pyx_f_4lxml_5etree__addAttributeToNode(xmlNode *__pyx_v_c_node, str
  */
     (void)(xmlNewProp(__pyx_v_c_node, (const xmlChar*)PyBytes_AS_STRING(__pyx_v_name_utf), (const xmlChar*)PyBytes_AS_STRING(__pyx_v_value_utf)));
 
-    /* "src/lxml/apihelpers.pxi":340
+    /* "src/lxml/apihelpers.pxi":335
  *         _attributeValidOrRaise(name_utf)
  *     value_utf = _utf8(value)
  *     if ns_utf is None:             # <<<<<<<<<<<<<<
@@ -23205,7 +23132,7 @@ static int __pyx_f_4lxml_5etree__addAttributeToNode(xmlNode *__pyx_v_c_node, str
     goto __pyx_L5;
   }
 
-  /* "src/lxml/apihelpers.pxi":343
+  /* "src/lxml/apihelpers.pxi":338
  *         tree.xmlNewProp(c_node, _xcstr(name_utf), _xcstr(value_utf))
  *     else:
  *         _uriValidOrRaise(ns_utf)             # <<<<<<<<<<<<<<
@@ -23213,19 +23140,19 @@ static int __pyx_f_4lxml_5etree__addAttributeToNode(xmlNode *__pyx_v_c_node, str
  *         tree.xmlNewNsProp(c_node, c_ns,
  */
   /*else*/ {
-    __pyx_t_7 = __pyx_f_4lxml_5etree__uriValidOrRaise(__pyx_v_ns_utf); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(5, 343, __pyx_L1_error)
+    __pyx_t_7 = __pyx_f_4lxml_5etree__uriValidOrRaise(__pyx_v_ns_utf); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(5, 338, __pyx_L1_error)
 
-    /* "src/lxml/apihelpers.pxi":344
+    /* "src/lxml/apihelpers.pxi":339
  *     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 == ((xmlNs *)NULL))) __PYX_ERR(5, 344, __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 == ((xmlNs *)NULL))) __PYX_ERR(5, 339, __pyx_L1_error)
     __pyx_v_c_ns = __pyx_t_8;
 
-    /* "src/lxml/apihelpers.pxi":345
+    /* "src/lxml/apihelpers.pxi":340
  *         _uriValidOrRaise(ns_utf)
  *         c_ns = doc._findOrBuildNodeNs(c_node, _xcstr(ns_utf), NULL, 1)
  *         tree.xmlNewNsProp(c_node, c_ns,             # <<<<<<<<<<<<<<
@@ -23236,7 +23163,7 @@ static int __pyx_f_4lxml_5etree__addAttributeToNode(xmlNode *__pyx_v_c_node, str
   }
   __pyx_L5:;
 
-  /* "src/lxml/apihelpers.pxi":347
+  /* "src/lxml/apihelpers.pxi":342
  *         tree.xmlNewNsProp(c_node, c_ns,
  *                           _xcstr(name_utf), _xcstr(value_utf))
  *     return 0             # <<<<<<<<<<<<<<
@@ -23246,7 +23173,7 @@ static int __pyx_f_4lxml_5etree__addAttributeToNode(xmlNode *__pyx_v_c_node, str
   __pyx_r = 0;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":331
+  /* "src/lxml/apihelpers.pxi":326
  * 
  * 
  * cdef int _addAttributeToNode(xmlNode* c_node, _Document doc, bint is_html,             # <<<<<<<<<<<<<<
@@ -23270,7 +23197,7 @@ static int __pyx_f_4lxml_5etree__addAttributeToNode(xmlNode *__pyx_v_c_node, str
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":355
+/* "src/lxml/apihelpers.pxi":350
  * 
  * 
  * cdef int _collectNsDefs(xmlNode* c_element, _ns_node_ref **_c_ns_list,             # <<<<<<<<<<<<<<
@@ -23291,7 +23218,7 @@ static int __pyx_f_4lxml_5etree__collectNsDefs(xmlNode *__pyx_v_c_element, __pyx
   __pyx_t_4lxml_5etree__ns_node_ref __pyx_t_3;
   __Pyx_RefNannySetupContext("_collectNsDefs", 0);
 
-  /* "src/lxml/apihelpers.pxi":357
+  /* "src/lxml/apihelpers.pxi":352
  * cdef int _collectNsDefs(xmlNode* c_element, _ns_node_ref **_c_ns_list,
  *                         size_t *_c_ns_list_len, size_t *_c_ns_list_size) except -1:
  *     c_ns_list = _c_ns_list[0]             # <<<<<<<<<<<<<<
@@ -23300,7 +23227,7 @@ static int __pyx_f_4lxml_5etree__collectNsDefs(xmlNode *__pyx_v_c_element, __pyx
  */
   __pyx_v_c_ns_list = (__pyx_v__c_ns_list[0]);
 
-  /* "src/lxml/apihelpers.pxi":358
+  /* "src/lxml/apihelpers.pxi":353
  *                         size_t *_c_ns_list_len, size_t *_c_ns_list_size) except -1:
  *     c_ns_list = _c_ns_list[0]
  *     cdef size_t c_ns_list_len = _c_ns_list_len[0]             # <<<<<<<<<<<<<<
@@ -23309,7 +23236,7 @@ static int __pyx_f_4lxml_5etree__collectNsDefs(xmlNode *__pyx_v_c_element, __pyx
  */
   __pyx_v_c_ns_list_len = (__pyx_v__c_ns_list_len[0]);
 
-  /* "src/lxml/apihelpers.pxi":359
+  /* "src/lxml/apihelpers.pxi":354
  *     c_ns_list = _c_ns_list[0]
  *     cdef size_t c_ns_list_len = _c_ns_list_len[0]
  *     cdef size_t c_ns_list_size = _c_ns_list_size[0]             # <<<<<<<<<<<<<<
@@ -23318,7 +23245,7 @@ static int __pyx_f_4lxml_5etree__collectNsDefs(xmlNode *__pyx_v_c_element, __pyx
  */
   __pyx_v_c_ns_list_size = (__pyx_v__c_ns_list_size[0]);
 
-  /* "src/lxml/apihelpers.pxi":361
+  /* "src/lxml/apihelpers.pxi":356
  *     cdef size_t c_ns_list_size = _c_ns_list_size[0]
  * 
  *     c_nsdef = c_element.nsDef             # <<<<<<<<<<<<<<
@@ -23328,7 +23255,7 @@ static int __pyx_f_4lxml_5etree__collectNsDefs(xmlNode *__pyx_v_c_element, __pyx
   __pyx_t_1 = __pyx_v_c_element->nsDef;
   __pyx_v_c_nsdef = __pyx_t_1;
 
-  /* "src/lxml/apihelpers.pxi":362
+  /* "src/lxml/apihelpers.pxi":357
  * 
  *     c_nsdef = c_element.nsDef
  *     while c_nsdef is not NULL:             # <<<<<<<<<<<<<<
@@ -23339,7 +23266,7 @@ static int __pyx_f_4lxml_5etree__collectNsDefs(xmlNode *__pyx_v_c_element, __pyx
     __pyx_t_2 = ((__pyx_v_c_nsdef != NULL) != 0);
     if (!__pyx_t_2) break;
 
-    /* "src/lxml/apihelpers.pxi":363
+    /* "src/lxml/apihelpers.pxi":358
  *     c_nsdef = c_element.nsDef
  *     while c_nsdef is not NULL:
  *         if c_ns_list_len >= c_ns_list_size:             # <<<<<<<<<<<<<<
@@ -23349,7 +23276,7 @@ static int __pyx_f_4lxml_5etree__collectNsDefs(xmlNode *__pyx_v_c_element, __pyx
     __pyx_t_2 = ((__pyx_v_c_ns_list_len >= __pyx_v_c_ns_list_size) != 0);
     if (__pyx_t_2) {
 
-      /* "src/lxml/apihelpers.pxi":364
+      /* "src/lxml/apihelpers.pxi":359
  *     while c_nsdef is not NULL:
  *         if c_ns_list_len >= c_ns_list_size:
  *             if c_ns_list is NULL:             # <<<<<<<<<<<<<<
@@ -23359,7 +23286,7 @@ static int __pyx_f_4lxml_5etree__collectNsDefs(xmlNode *__pyx_v_c_element, __pyx
       __pyx_t_2 = ((__pyx_v_c_ns_list == NULL) != 0);
       if (__pyx_t_2) {
 
-        /* "src/lxml/apihelpers.pxi":365
+        /* "src/lxml/apihelpers.pxi":360
  *         if c_ns_list_len >= c_ns_list_size:
  *             if c_ns_list is NULL:
  *                 c_ns_list_size = 20             # <<<<<<<<<<<<<<
@@ -23368,7 +23295,7 @@ static int __pyx_f_4lxml_5etree__collectNsDefs(xmlNode *__pyx_v_c_element, __pyx
  */
         __pyx_v_c_ns_list_size = 20;
 
-        /* "src/lxml/apihelpers.pxi":364
+        /* "src/lxml/apihelpers.pxi":359
  *     while c_nsdef is not NULL:
  *         if c_ns_list_len >= c_ns_list_size:
  *             if c_ns_list is NULL:             # <<<<<<<<<<<<<<
@@ -23378,7 +23305,7 @@ static int __pyx_f_4lxml_5etree__collectNsDefs(xmlNode *__pyx_v_c_element, __pyx
         goto __pyx_L6;
       }
 
-      /* "src/lxml/apihelpers.pxi":367
+      /* "src/lxml/apihelpers.pxi":362
  *                 c_ns_list_size = 20
  *             else:
  *                 c_ns_list_size *= 2             # <<<<<<<<<<<<<<
@@ -23390,7 +23317,7 @@ static int __pyx_f_4lxml_5etree__collectNsDefs(xmlNode *__pyx_v_c_element, __pyx
       }
       __pyx_L6:;
 
-      /* "src/lxml/apihelpers.pxi":368
+      /* "src/lxml/apihelpers.pxi":363
  *             else:
  *                 c_ns_list_size *= 2
  *             c_nsref_ptr = <_ns_node_ref*> python.lxml_realloc(             # <<<<<<<<<<<<<<
@@ -23399,7 +23326,7 @@ static int __pyx_f_4lxml_5etree__collectNsDefs(xmlNode *__pyx_v_c_element, __pyx
  */
       __pyx_v_c_nsref_ptr = ((__pyx_t_4lxml_5etree__ns_node_ref *)lxml_realloc(__pyx_v_c_ns_list, __pyx_v_c_ns_list_size, (sizeof(__pyx_t_4lxml_5etree__ns_node_ref))));
 
-      /* "src/lxml/apihelpers.pxi":370
+      /* "src/lxml/apihelpers.pxi":365
  *             c_nsref_ptr = <_ns_node_ref*> python.lxml_realloc(
  *                 c_ns_list, c_ns_list_size, sizeof(_ns_node_ref))
  *             if c_nsref_ptr is NULL:             # <<<<<<<<<<<<<<
@@ -23409,7 +23336,7 @@ static int __pyx_f_4lxml_5etree__collectNsDefs(xmlNode *__pyx_v_c_element, __pyx
       __pyx_t_2 = ((__pyx_v_c_nsref_ptr == NULL) != 0);
       if (__pyx_t_2) {
 
-        /* "src/lxml/apihelpers.pxi":371
+        /* "src/lxml/apihelpers.pxi":366
  *                 c_ns_list, c_ns_list_size, sizeof(_ns_node_ref))
  *             if c_nsref_ptr is NULL:
  *                 if c_ns_list is not NULL:             # <<<<<<<<<<<<<<
@@ -23419,7 +23346,7 @@ static int __pyx_f_4lxml_5etree__collectNsDefs(xmlNode *__pyx_v_c_element, __pyx
         __pyx_t_2 = ((__pyx_v_c_ns_list != NULL) != 0);
         if (__pyx_t_2) {
 
-          /* "src/lxml/apihelpers.pxi":372
+          /* "src/lxml/apihelpers.pxi":367
  *             if c_nsref_ptr is NULL:
  *                 if c_ns_list is not NULL:
  *                     python.lxml_free(c_ns_list)             # <<<<<<<<<<<<<<
@@ -23428,7 +23355,7 @@ static int __pyx_f_4lxml_5etree__collectNsDefs(xmlNode *__pyx_v_c_element, __pyx
  */
           lxml_free(__pyx_v_c_ns_list);
 
-          /* "src/lxml/apihelpers.pxi":373
+          /* "src/lxml/apihelpers.pxi":368
  *                 if c_ns_list is not NULL:
  *                     python.lxml_free(c_ns_list)
  *                     _c_ns_list[0] = NULL             # <<<<<<<<<<<<<<
@@ -23437,7 +23364,7 @@ static int __pyx_f_4lxml_5etree__collectNsDefs(xmlNode *__pyx_v_c_element, __pyx
  */
           (__pyx_v__c_ns_list[0]) = NULL;
 
-          /* "src/lxml/apihelpers.pxi":371
+          /* "src/lxml/apihelpers.pxi":366
  *                 c_ns_list, c_ns_list_size, sizeof(_ns_node_ref))
  *             if c_nsref_ptr is NULL:
  *                 if c_ns_list is not NULL:             # <<<<<<<<<<<<<<
@@ -23446,16 +23373,16 @@ static int __pyx_f_4lxml_5etree__collectNsDefs(xmlNode *__pyx_v_c_element, __pyx
  */
         }
 
-        /* "src/lxml/apihelpers.pxi":374
+        /* "src/lxml/apihelpers.pxi":369
  *                     python.lxml_free(c_ns_list)
  *                     _c_ns_list[0] = NULL
  *                 raise MemoryError()             # <<<<<<<<<<<<<<
  *             c_ns_list = c_nsref_ptr
  * 
  */
-        PyErr_NoMemory(); __PYX_ERR(5, 374, __pyx_L1_error)
+        PyErr_NoMemory(); __PYX_ERR(5, 369, __pyx_L1_error)
 
-        /* "src/lxml/apihelpers.pxi":370
+        /* "src/lxml/apihelpers.pxi":365
  *             c_nsref_ptr = <_ns_node_ref*> python.lxml_realloc(
  *                 c_ns_list, c_ns_list_size, sizeof(_ns_node_ref))
  *             if c_nsref_ptr is NULL:             # <<<<<<<<<<<<<<
@@ -23464,7 +23391,7 @@ static int __pyx_f_4lxml_5etree__collectNsDefs(xmlNode *__pyx_v_c_element, __pyx
  */
       }
 
-      /* "src/lxml/apihelpers.pxi":375
+      /* "src/lxml/apihelpers.pxi":370
  *                     _c_ns_list[0] = NULL
  *                 raise MemoryError()
  *             c_ns_list = c_nsref_ptr             # <<<<<<<<<<<<<<
@@ -23473,7 +23400,7 @@ static int __pyx_f_4lxml_5etree__collectNsDefs(xmlNode *__pyx_v_c_element, __pyx
  */
       __pyx_v_c_ns_list = __pyx_v_c_nsref_ptr;
 
-      /* "src/lxml/apihelpers.pxi":363
+      /* "src/lxml/apihelpers.pxi":358
  *     c_nsdef = c_element.nsDef
  *     while c_nsdef is not NULL:
  *         if c_ns_list_len >= c_ns_list_size:             # <<<<<<<<<<<<<<
@@ -23482,7 +23409,7 @@ static int __pyx_f_4lxml_5etree__collectNsDefs(xmlNode *__pyx_v_c_element, __pyx
  */
     }
 
-    /* "src/lxml/apihelpers.pxi":377
+    /* "src/lxml/apihelpers.pxi":372
  *             c_ns_list = c_nsref_ptr
  * 
  *         c_ns_list[c_ns_list_len] = _ns_node_ref(c_nsdef, c_element)             # <<<<<<<<<<<<<<
@@ -23493,7 +23420,7 @@ static int __pyx_f_4lxml_5etree__collectNsDefs(xmlNode *__pyx_v_c_element, __pyx
     __pyx_t_3.node = __pyx_v_c_element;
     (__pyx_v_c_ns_list[__pyx_v_c_ns_list_len]) = __pyx_t_3;
 
-    /* "src/lxml/apihelpers.pxi":378
+    /* "src/lxml/apihelpers.pxi":373
  * 
  *         c_ns_list[c_ns_list_len] = _ns_node_ref(c_nsdef, c_element)
  *         c_ns_list_len += 1             # <<<<<<<<<<<<<<
@@ -23502,7 +23429,7 @@ static int __pyx_f_4lxml_5etree__collectNsDefs(xmlNode *__pyx_v_c_element, __pyx
  */
     __pyx_v_c_ns_list_len = (__pyx_v_c_ns_list_len + 1);
 
-    /* "src/lxml/apihelpers.pxi":379
+    /* "src/lxml/apihelpers.pxi":374
  *         c_ns_list[c_ns_list_len] = _ns_node_ref(c_nsdef, c_element)
  *         c_ns_list_len += 1
  *         c_nsdef = c_nsdef.next             # <<<<<<<<<<<<<<
@@ -23513,7 +23440,7 @@ static int __pyx_f_4lxml_5etree__collectNsDefs(xmlNode *__pyx_v_c_element, __pyx
     __pyx_v_c_nsdef = __pyx_t_1;
   }
 
-  /* "src/lxml/apihelpers.pxi":381
+  /* "src/lxml/apihelpers.pxi":376
  *         c_nsdef = c_nsdef.next
  * 
  *     _c_ns_list_size[0] = c_ns_list_size             # <<<<<<<<<<<<<<
@@ -23522,7 +23449,7 @@ static int __pyx_f_4lxml_5etree__collectNsDefs(xmlNode *__pyx_v_c_element, __pyx
  */
   (__pyx_v__c_ns_list_size[0]) = __pyx_v_c_ns_list_size;
 
-  /* "src/lxml/apihelpers.pxi":382
+  /* "src/lxml/apihelpers.pxi":377
  * 
  *     _c_ns_list_size[0] = c_ns_list_size
  *     _c_ns_list_len[0] = c_ns_list_len             # <<<<<<<<<<<<<<
@@ -23531,7 +23458,7 @@ static int __pyx_f_4lxml_5etree__collectNsDefs(xmlNode *__pyx_v_c_element, __pyx
  */
   (__pyx_v__c_ns_list_len[0]) = __pyx_v_c_ns_list_len;
 
-  /* "src/lxml/apihelpers.pxi":383
+  /* "src/lxml/apihelpers.pxi":378
  *     _c_ns_list_size[0] = c_ns_list_size
  *     _c_ns_list_len[0] = c_ns_list_len
  *     _c_ns_list[0] = c_ns_list             # <<<<<<<<<<<<<<
@@ -23540,7 +23467,7 @@ static int __pyx_f_4lxml_5etree__collectNsDefs(xmlNode *__pyx_v_c_element, __pyx
  */
   (__pyx_v__c_ns_list[0]) = __pyx_v_c_ns_list;
 
-  /* "src/lxml/apihelpers.pxi":355
+  /* "src/lxml/apihelpers.pxi":350
  * 
  * 
  * cdef int _collectNsDefs(xmlNode* c_element, _ns_node_ref **_c_ns_list,             # <<<<<<<<<<<<<<
@@ -23559,7 +23486,7 @@ static int __pyx_f_4lxml_5etree__collectNsDefs(xmlNode *__pyx_v_c_element, __pyx
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":386
+/* "src/lxml/apihelpers.pxi":381
  * 
  * 
  * cdef int _removeUnusedNamespaceDeclarations(xmlNode* c_element, set prefixes_to_keep) except -1:             # <<<<<<<<<<<<<<
@@ -23588,7 +23515,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
   xmlNs *__pyx_t_10;
   __Pyx_RefNannySetupContext("_removeUnusedNamespaceDeclarations", 0);
 
-  /* "src/lxml/apihelpers.pxi":394
+  /* "src/lxml/apihelpers.pxi":389
  *     """
  *     cdef xmlNode* c_node
  *     cdef _ns_node_ref* c_ns_list = NULL             # <<<<<<<<<<<<<<
@@ -23597,7 +23524,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
  */
   __pyx_v_c_ns_list = NULL;
 
-  /* "src/lxml/apihelpers.pxi":395
+  /* "src/lxml/apihelpers.pxi":390
  *     cdef xmlNode* c_node
  *     cdef _ns_node_ref* c_ns_list = NULL
  *     cdef size_t c_ns_list_size = 0             # <<<<<<<<<<<<<<
@@ -23606,7 +23533,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
  */
   __pyx_v_c_ns_list_size = 0;
 
-  /* "src/lxml/apihelpers.pxi":396
+  /* "src/lxml/apihelpers.pxi":391
  *     cdef _ns_node_ref* c_ns_list = NULL
  *     cdef size_t c_ns_list_size = 0
  *     cdef size_t c_ns_list_len = 0             # <<<<<<<<<<<<<<
@@ -23615,7 +23542,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
  */
   __pyx_v_c_ns_list_len = 0;
 
-  /* "src/lxml/apihelpers.pxi":399
+  /* "src/lxml/apihelpers.pxi":394
  *     cdef size_t i
  * 
  *     if c_element.parent and c_element.parent.type == tree.XML_DOCUMENT_NODE:             # <<<<<<<<<<<<<<
@@ -23633,16 +23560,16 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
   __pyx_L4_bool_binop_done:;
   if (__pyx_t_1) {
 
-    /* "src/lxml/apihelpers.pxi":401
+    /* "src/lxml/apihelpers.pxi":396
  *     if c_element.parent and c_element.parent.type == tree.XML_DOCUMENT_NODE:
  *         # include declarations on the document node
  *         _collectNsDefs(c_element.parent, &c_ns_list, &c_ns_list_len, &c_ns_list_size)             # <<<<<<<<<<<<<<
  * 
  *     tree.BEGIN_FOR_EACH_ELEMENT_FROM(c_element, c_element, 1)
  */
-    __pyx_t_3 = __pyx_f_4lxml_5etree__collectNsDefs(__pyx_v_c_element->parent, (&__pyx_v_c_ns_list), (&__pyx_v_c_ns_list_len), (&__pyx_v_c_ns_list_size)); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(5, 401, __pyx_L1_error)
+    __pyx_t_3 = __pyx_f_4lxml_5etree__collectNsDefs(__pyx_v_c_element->parent, (&__pyx_v_c_ns_list), (&__pyx_v_c_ns_list_len), (&__pyx_v_c_ns_list_size)); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(5, 396, __pyx_L1_error)
 
-    /* "src/lxml/apihelpers.pxi":399
+    /* "src/lxml/apihelpers.pxi":394
  *     cdef size_t i
  * 
  *     if c_element.parent and c_element.parent.type == tree.XML_DOCUMENT_NODE:             # <<<<<<<<<<<<<<
@@ -23651,7 +23578,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":403
+  /* "src/lxml/apihelpers.pxi":398
  *         _collectNsDefs(c_element.parent, &c_ns_list, &c_ns_list_len, &c_ns_list_size)
  * 
  *     tree.BEGIN_FOR_EACH_ELEMENT_FROM(c_element, c_element, 1)             # <<<<<<<<<<<<<<
@@ -23660,7 +23587,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
  */
   BEGIN_FOR_EACH_ELEMENT_FROM(__pyx_v_c_element, __pyx_v_c_element, 1);
 
-  /* "src/lxml/apihelpers.pxi":405
+  /* "src/lxml/apihelpers.pxi":400
  *     tree.BEGIN_FOR_EACH_ELEMENT_FROM(c_element, c_element, 1)
  *     # collect all new namespace declarations into the ns list
  *     if c_element.nsDef:             # <<<<<<<<<<<<<<
@@ -23670,16 +23597,16 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
   __pyx_t_1 = (__pyx_v_c_element->nsDef != 0);
   if (__pyx_t_1) {
 
-    /* "src/lxml/apihelpers.pxi":406
+    /* "src/lxml/apihelpers.pxi":401
  *     # collect all new namespace declarations into the ns list
  *     if c_element.nsDef:
  *         _collectNsDefs(c_element, &c_ns_list, &c_ns_list_len, &c_ns_list_size)             # <<<<<<<<<<<<<<
  * 
  *     # remove all namespace declarations from the list that are referenced
  */
-    __pyx_t_3 = __pyx_f_4lxml_5etree__collectNsDefs(__pyx_v_c_element, (&__pyx_v_c_ns_list), (&__pyx_v_c_ns_list_len), (&__pyx_v_c_ns_list_size)); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(5, 406, __pyx_L1_error)
+    __pyx_t_3 = __pyx_f_4lxml_5etree__collectNsDefs(__pyx_v_c_element, (&__pyx_v_c_ns_list), (&__pyx_v_c_ns_list_len), (&__pyx_v_c_ns_list_size)); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(5, 401, __pyx_L1_error)
 
-    /* "src/lxml/apihelpers.pxi":405
+    /* "src/lxml/apihelpers.pxi":400
  *     tree.BEGIN_FOR_EACH_ELEMENT_FROM(c_element, c_element, 1)
  *     # collect all new namespace declarations into the ns list
  *     if c_element.nsDef:             # <<<<<<<<<<<<<<
@@ -23688,7 +23615,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":409
+  /* "src/lxml/apihelpers.pxi":404
  * 
  *     # remove all namespace declarations from the list that are referenced
  *     if c_ns_list_len and c_element.type == tree.XML_ELEMENT_NODE:             # <<<<<<<<<<<<<<
@@ -23706,7 +23633,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
   __pyx_L8_bool_binop_done:;
   if (__pyx_t_1) {
 
-    /* "src/lxml/apihelpers.pxi":410
+    /* "src/lxml/apihelpers.pxi":405
  *     # remove all namespace declarations from the list that are referenced
  *     if c_ns_list_len and c_element.type == tree.XML_ELEMENT_NODE:
  *         c_node = c_element             # <<<<<<<<<<<<<<
@@ -23715,7 +23642,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
  */
     __pyx_v_c_node = __pyx_v_c_element;
 
-    /* "src/lxml/apihelpers.pxi":411
+    /* "src/lxml/apihelpers.pxi":406
  *     if c_ns_list_len and c_element.type == tree.XML_ELEMENT_NODE:
  *         c_node = c_element
  *         while c_node and c_ns_list_len:             # <<<<<<<<<<<<<<
@@ -23734,7 +23661,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
       __pyx_L12_bool_binop_done:;
       if (!__pyx_t_1) break;
 
-      /* "src/lxml/apihelpers.pxi":412
+      /* "src/lxml/apihelpers.pxi":407
  *         c_node = c_element
  *         while c_node and c_ns_list_len:
  *             if c_node.ns:             # <<<<<<<<<<<<<<
@@ -23744,7 +23671,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
       __pyx_t_1 = (__pyx_v_c_node->ns != 0);
       if (__pyx_t_1) {
 
-        /* "src/lxml/apihelpers.pxi":413
+        /* "src/lxml/apihelpers.pxi":408
  *         while c_node and c_ns_list_len:
  *             if c_node.ns:
  *                 for i in range(c_ns_list_len):             # <<<<<<<<<<<<<<
@@ -23756,7 +23683,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
         for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
           __pyx_v_i = __pyx_t_6;
 
-          /* "src/lxml/apihelpers.pxi":414
+          /* "src/lxml/apihelpers.pxi":409
  *             if c_node.ns:
  *                 for i in range(c_ns_list_len):
  *                     if c_node.ns is c_ns_list[i].ns:             # <<<<<<<<<<<<<<
@@ -23766,7 +23693,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
           __pyx_t_1 = ((__pyx_v_c_node->ns == (__pyx_v_c_ns_list[__pyx_v_i]).ns) != 0);
           if (__pyx_t_1) {
 
-            /* "src/lxml/apihelpers.pxi":415
+            /* "src/lxml/apihelpers.pxi":410
  *                 for i in range(c_ns_list_len):
  *                     if c_node.ns is c_ns_list[i].ns:
  *                         c_ns_list_len -= 1             # <<<<<<<<<<<<<<
@@ -23775,7 +23702,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
  */
             __pyx_v_c_ns_list_len = (__pyx_v_c_ns_list_len - 1);
 
-            /* "src/lxml/apihelpers.pxi":416
+            /* "src/lxml/apihelpers.pxi":411
  *                     if c_node.ns is c_ns_list[i].ns:
  *                         c_ns_list_len -= 1
  *                         c_ns_list[i] = c_ns_list[c_ns_list_len]             # <<<<<<<<<<<<<<
@@ -23784,7 +23711,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
  */
             (__pyx_v_c_ns_list[__pyx_v_i]) = (__pyx_v_c_ns_list[__pyx_v_c_ns_list_len]);
 
-            /* "src/lxml/apihelpers.pxi":418
+            /* "src/lxml/apihelpers.pxi":413
  *                         c_ns_list[i] = c_ns_list[c_ns_list_len]
  *                         #c_ns_list[c_ns_list_len] = _ns_node_ref(NULL, NULL)
  *                         break             # <<<<<<<<<<<<<<
@@ -23793,7 +23720,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
  */
             goto __pyx_L16_break;
 
-            /* "src/lxml/apihelpers.pxi":414
+            /* "src/lxml/apihelpers.pxi":409
  *             if c_node.ns:
  *                 for i in range(c_ns_list_len):
  *                     if c_node.ns is c_ns_list[i].ns:             # <<<<<<<<<<<<<<
@@ -23804,7 +23731,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
         }
         __pyx_L16_break:;
 
-        /* "src/lxml/apihelpers.pxi":412
+        /* "src/lxml/apihelpers.pxi":407
  *         c_node = c_element
  *         while c_node and c_ns_list_len:
  *             if c_node.ns:             # <<<<<<<<<<<<<<
@@ -23813,7 +23740,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
  */
       }
 
-      /* "src/lxml/apihelpers.pxi":419
+      /* "src/lxml/apihelpers.pxi":414
  *                         #c_ns_list[c_ns_list_len] = _ns_node_ref(NULL, NULL)
  *                         break
  *             if c_node is c_element:             # <<<<<<<<<<<<<<
@@ -23823,7 +23750,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
       __pyx_t_1 = ((__pyx_v_c_node == __pyx_v_c_element) != 0);
       if (__pyx_t_1) {
 
-        /* "src/lxml/apihelpers.pxi":421
+        /* "src/lxml/apihelpers.pxi":416
  *             if c_node is c_element:
  *                 # continue with attributes
  *                 c_node = <xmlNode*>c_element.properties             # <<<<<<<<<<<<<<
@@ -23832,7 +23759,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
  */
         __pyx_v_c_node = ((xmlNode *)__pyx_v_c_element->properties);
 
-        /* "src/lxml/apihelpers.pxi":419
+        /* "src/lxml/apihelpers.pxi":414
  *                         #c_ns_list[c_ns_list_len] = _ns_node_ref(NULL, NULL)
  *                         break
  *             if c_node is c_element:             # <<<<<<<<<<<<<<
@@ -23842,7 +23769,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
         goto __pyx_L18;
       }
 
-      /* "src/lxml/apihelpers.pxi":423
+      /* "src/lxml/apihelpers.pxi":418
  *                 c_node = <xmlNode*>c_element.properties
  *             else:
  *                 c_node = c_node.next             # <<<<<<<<<<<<<<
@@ -23856,7 +23783,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
       __pyx_L18:;
     }
 
-    /* "src/lxml/apihelpers.pxi":409
+    /* "src/lxml/apihelpers.pxi":404
  * 
  *     # remove all namespace declarations from the list that are referenced
  *     if c_ns_list_len and c_element.type == tree.XML_ELEMENT_NODE:             # <<<<<<<<<<<<<<
@@ -23865,7 +23792,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":424
+  /* "src/lxml/apihelpers.pxi":419
  *             else:
  *                 c_node = c_node.next
  *     tree.END_FOR_EACH_ELEMENT_FROM(c_element)             # <<<<<<<<<<<<<<
@@ -23874,7 +23801,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
  */
   END_FOR_EACH_ELEMENT_FROM(__pyx_v_c_element);
 
-  /* "src/lxml/apihelpers.pxi":426
+  /* "src/lxml/apihelpers.pxi":421
  *     tree.END_FOR_EACH_ELEMENT_FROM(c_element)
  * 
  *     if c_ns_list is NULL:             # <<<<<<<<<<<<<<
@@ -23884,7 +23811,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
   __pyx_t_1 = ((__pyx_v_c_ns_list == NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "src/lxml/apihelpers.pxi":427
+    /* "src/lxml/apihelpers.pxi":422
  * 
  *     if c_ns_list is NULL:
  *         return 0             # <<<<<<<<<<<<<<
@@ -23894,7 +23821,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
     __pyx_r = 0;
     goto __pyx_L0;
 
-    /* "src/lxml/apihelpers.pxi":426
+    /* "src/lxml/apihelpers.pxi":421
  *     tree.END_FOR_EACH_ELEMENT_FROM(c_element)
  * 
  *     if c_ns_list is NULL:             # <<<<<<<<<<<<<<
@@ -23903,7 +23830,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":432
+  /* "src/lxml/apihelpers.pxi":427
  *     # except for those we should keep explicitly
  *     cdef xmlNs* c_nsdef
  *     for i in range(c_ns_list_len):             # <<<<<<<<<<<<<<
@@ -23915,7 +23842,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
   for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
     __pyx_v_i = __pyx_t_6;
 
-    /* "src/lxml/apihelpers.pxi":433
+    /* "src/lxml/apihelpers.pxi":428
  *     cdef xmlNs* c_nsdef
  *     for i in range(c_ns_list_len):
  *         if prefixes_to_keep is not None:             # <<<<<<<<<<<<<<
@@ -23926,7 +23853,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
     __pyx_t_2 = (__pyx_t_1 != 0);
     if (__pyx_t_2) {
 
-      /* "src/lxml/apihelpers.pxi":434
+      /* "src/lxml/apihelpers.pxi":429
  *     for i in range(c_ns_list_len):
  *         if prefixes_to_keep is not None:
  *             if c_ns_list[i].ns.prefix and c_ns_list[i].ns.prefix in prefixes_to_keep:             # <<<<<<<<<<<<<<
@@ -23939,20 +23866,20 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
         __pyx_t_2 = __pyx_t_1;
         goto __pyx_L24_bool_binop_done;
       }
-      __pyx_t_8 = __Pyx_PyBytes_FromCString((__pyx_v_c_ns_list[__pyx_v_i]).ns->prefix); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 434, __pyx_L1_error)
+      __pyx_t_8 = __Pyx_PyBytes_FromCString((__pyx_v_c_ns_list[__pyx_v_i]).ns->prefix); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 429, __pyx_L1_error)
       __Pyx_GOTREF(__pyx_t_8);
       if (unlikely(__pyx_v_prefixes_to_keep == Py_None)) {
         PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
-        __PYX_ERR(5, 434, __pyx_L1_error)
+        __PYX_ERR(5, 429, __pyx_L1_error)
       }
-      __pyx_t_1 = (__Pyx_PySet_ContainsTF(__pyx_t_8, __pyx_v_prefixes_to_keep, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(5, 434, __pyx_L1_error)
+      __pyx_t_1 = (__Pyx_PySet_ContainsTF(__pyx_t_8, __pyx_v_prefixes_to_keep, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(5, 429, __pyx_L1_error)
       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
       __pyx_t_9 = (__pyx_t_1 != 0);
       __pyx_t_2 = __pyx_t_9;
       __pyx_L24_bool_binop_done:;
       if (__pyx_t_2) {
 
-        /* "src/lxml/apihelpers.pxi":435
+        /* "src/lxml/apihelpers.pxi":430
  *         if prefixes_to_keep is not None:
  *             if c_ns_list[i].ns.prefix and c_ns_list[i].ns.prefix in prefixes_to_keep:
  *                 continue             # <<<<<<<<<<<<<<
@@ -23961,7 +23888,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
  */
         goto __pyx_L20_continue;
 
-        /* "src/lxml/apihelpers.pxi":434
+        /* "src/lxml/apihelpers.pxi":429
  *     for i in range(c_ns_list_len):
  *         if prefixes_to_keep is not None:
  *             if c_ns_list[i].ns.prefix and c_ns_list[i].ns.prefix in prefixes_to_keep:             # <<<<<<<<<<<<<<
@@ -23970,7 +23897,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
  */
       }
 
-      /* "src/lxml/apihelpers.pxi":433
+      /* "src/lxml/apihelpers.pxi":428
  *     cdef xmlNs* c_nsdef
  *     for i in range(c_ns_list_len):
  *         if prefixes_to_keep is not None:             # <<<<<<<<<<<<<<
@@ -23979,7 +23906,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
  */
     }
 
-    /* "src/lxml/apihelpers.pxi":436
+    /* "src/lxml/apihelpers.pxi":431
  *             if c_ns_list[i].ns.prefix and c_ns_list[i].ns.prefix in prefixes_to_keep:
  *                 continue
  *         c_node = c_ns_list[i].node             # <<<<<<<<<<<<<<
@@ -23989,7 +23916,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
     __pyx_t_7 = (__pyx_v_c_ns_list[__pyx_v_i]).node;
     __pyx_v_c_node = __pyx_t_7;
 
-    /* "src/lxml/apihelpers.pxi":437
+    /* "src/lxml/apihelpers.pxi":432
  *                 continue
  *         c_node = c_ns_list[i].node
  *         c_nsdef = c_node.nsDef             # <<<<<<<<<<<<<<
@@ -23999,7 +23926,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
     __pyx_t_10 = __pyx_v_c_node->nsDef;
     __pyx_v_c_nsdef = __pyx_t_10;
 
-    /* "src/lxml/apihelpers.pxi":438
+    /* "src/lxml/apihelpers.pxi":433
  *         c_node = c_ns_list[i].node
  *         c_nsdef = c_node.nsDef
  *         if c_nsdef is c_ns_list[i].ns:             # <<<<<<<<<<<<<<
@@ -24009,7 +23936,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
     __pyx_t_2 = ((__pyx_v_c_nsdef == (__pyx_v_c_ns_list[__pyx_v_i]).ns) != 0);
     if (__pyx_t_2) {
 
-      /* "src/lxml/apihelpers.pxi":439
+      /* "src/lxml/apihelpers.pxi":434
  *         c_nsdef = c_node.nsDef
  *         if c_nsdef is c_ns_list[i].ns:
  *             c_node.nsDef = c_node.nsDef.next             # <<<<<<<<<<<<<<
@@ -24019,7 +23946,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
       __pyx_t_10 = __pyx_v_c_node->nsDef->next;
       __pyx_v_c_node->nsDef = __pyx_t_10;
 
-      /* "src/lxml/apihelpers.pxi":438
+      /* "src/lxml/apihelpers.pxi":433
  *         c_node = c_ns_list[i].node
  *         c_nsdef = c_node.nsDef
  *         if c_nsdef is c_ns_list[i].ns:             # <<<<<<<<<<<<<<
@@ -24029,7 +23956,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
       goto __pyx_L26;
     }
 
-    /* "src/lxml/apihelpers.pxi":441
+    /* "src/lxml/apihelpers.pxi":436
  *             c_node.nsDef = c_node.nsDef.next
  *         else:
  *             while c_nsdef.next is not c_ns_list[i].ns:             # <<<<<<<<<<<<<<
@@ -24041,7 +23968,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
         __pyx_t_2 = ((__pyx_v_c_nsdef->next != (__pyx_v_c_ns_list[__pyx_v_i]).ns) != 0);
         if (!__pyx_t_2) break;
 
-        /* "src/lxml/apihelpers.pxi":442
+        /* "src/lxml/apihelpers.pxi":437
  *         else:
  *             while c_nsdef.next is not c_ns_list[i].ns:
  *                 c_nsdef = c_nsdef.next             # <<<<<<<<<<<<<<
@@ -24052,7 +23979,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
         __pyx_v_c_nsdef = __pyx_t_10;
       }
 
-      /* "src/lxml/apihelpers.pxi":443
+      /* "src/lxml/apihelpers.pxi":438
  *             while c_nsdef.next is not c_ns_list[i].ns:
  *                 c_nsdef = c_nsdef.next
  *             c_nsdef.next = c_nsdef.next.next             # <<<<<<<<<<<<<<
@@ -24064,7 +23991,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
     }
     __pyx_L26:;
 
-    /* "src/lxml/apihelpers.pxi":444
+    /* "src/lxml/apihelpers.pxi":439
  *                 c_nsdef = c_nsdef.next
  *             c_nsdef.next = c_nsdef.next.next
  *         tree.xmlFreeNs(c_ns_list[i].ns)             # <<<<<<<<<<<<<<
@@ -24075,7 +24002,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
     __pyx_L20_continue:;
   }
 
-  /* "src/lxml/apihelpers.pxi":446
+  /* "src/lxml/apihelpers.pxi":441
  *         tree.xmlFreeNs(c_ns_list[i].ns)
  * 
  *     if c_ns_list is not NULL:             # <<<<<<<<<<<<<<
@@ -24085,7 +24012,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
   __pyx_t_2 = ((__pyx_v_c_ns_list != NULL) != 0);
   if (__pyx_t_2) {
 
-    /* "src/lxml/apihelpers.pxi":447
+    /* "src/lxml/apihelpers.pxi":442
  * 
  *     if c_ns_list is not NULL:
  *         python.lxml_free(c_ns_list)             # <<<<<<<<<<<<<<
@@ -24094,7 +24021,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
  */
     lxml_free(__pyx_v_c_ns_list);
 
-    /* "src/lxml/apihelpers.pxi":446
+    /* "src/lxml/apihelpers.pxi":441
  *         tree.xmlFreeNs(c_ns_list[i].ns)
  * 
  *     if c_ns_list is not NULL:             # <<<<<<<<<<<<<<
@@ -24103,7 +24030,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":448
+  /* "src/lxml/apihelpers.pxi":443
  *     if c_ns_list is not NULL:
  *         python.lxml_free(c_ns_list)
  *     return 0             # <<<<<<<<<<<<<<
@@ -24113,7 +24040,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
   __pyx_r = 0;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":386
+  /* "src/lxml/apihelpers.pxi":381
  * 
  * 
  * cdef int _removeUnusedNamespaceDeclarations(xmlNode* c_element, set prefixes_to_keep) except -1:             # <<<<<<<<<<<<<<
@@ -24131,7 +24058,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":450
+/* "src/lxml/apihelpers.pxi":445
  *     return 0
  * 
  * cdef xmlNs* _searchNsByHref(xmlNode* c_node, const_xmlChar* c_href, bint is_attribute):             # <<<<<<<<<<<<<<
@@ -24151,7 +24078,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
   xmlNs *__pyx_t_4;
   __Pyx_RefNannySetupContext("_searchNsByHref", 0);
 
-  /* "src/lxml/apihelpers.pxi":459
+  /* "src/lxml/apihelpers.pxi":454
  *     """
  *     cdef xmlNs* c_ns
  *     cdef xmlNs* c_default_ns = NULL             # <<<<<<<<<<<<<<
@@ -24160,7 +24087,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
  */
   __pyx_v_c_default_ns = NULL;
 
-  /* "src/lxml/apihelpers.pxi":461
+  /* "src/lxml/apihelpers.pxi":456
  *     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:             # <<<<<<<<<<<<<<
@@ -24184,7 +24111,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
   __pyx_L4_bool_binop_done:;
   if (__pyx_t_1) {
 
-    /* "src/lxml/apihelpers.pxi":462
+    /* "src/lxml/apihelpers.pxi":457
  *     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             # <<<<<<<<<<<<<<
@@ -24194,7 +24121,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
     __pyx_r = NULL;
     goto __pyx_L0;
 
-    /* "src/lxml/apihelpers.pxi":461
+    /* "src/lxml/apihelpers.pxi":456
  *     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:             # <<<<<<<<<<<<<<
@@ -24203,7 +24130,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":463
+  /* "src/lxml/apihelpers.pxi":458
  *     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:             # <<<<<<<<<<<<<<
@@ -24213,7 +24140,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
   __pyx_t_1 = ((xmlStrcmp(__pyx_v_c_href, XML_XML_NAMESPACE) == 0) != 0);
   if (__pyx_t_1) {
 
-    /* "src/lxml/apihelpers.pxi":465
+    /* "src/lxml/apihelpers.pxi":460
  *     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)             # <<<<<<<<<<<<<<
@@ -24223,7 +24150,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
     __pyx_r = xmlSearchNsByHref(__pyx_v_c_node->doc, __pyx_v_c_node, __pyx_v_c_href);
     goto __pyx_L0;
 
-    /* "src/lxml/apihelpers.pxi":463
+    /* "src/lxml/apihelpers.pxi":458
  *     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:             # <<<<<<<<<<<<<<
@@ -24232,7 +24159,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":466
+  /* "src/lxml/apihelpers.pxi":461
  *         # 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:             # <<<<<<<<<<<<<<
@@ -24242,7 +24169,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
   __pyx_t_1 = ((__pyx_v_c_node->type == XML_ATTRIBUTE_NODE) != 0);
   if (__pyx_t_1) {
 
-    /* "src/lxml/apihelpers.pxi":467
+    /* "src/lxml/apihelpers.pxi":462
  *         return tree.xmlSearchNsByHref(c_node.doc, c_node, c_href)
  *     if c_node.type == tree.XML_ATTRIBUTE_NODE:
  *         is_attribute = 1             # <<<<<<<<<<<<<<
@@ -24251,7 +24178,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
  */
     __pyx_v_is_attribute = 1;
 
-    /* "src/lxml/apihelpers.pxi":466
+    /* "src/lxml/apihelpers.pxi":461
  *         # 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:             # <<<<<<<<<<<<<<
@@ -24260,7 +24187,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":468
+  /* "src/lxml/apihelpers.pxi":463
  *     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:             # <<<<<<<<<<<<<<
@@ -24279,7 +24206,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
     __pyx_L11_bool_binop_done:;
     if (!__pyx_t_1) break;
 
-    /* "src/lxml/apihelpers.pxi":469
+    /* "src/lxml/apihelpers.pxi":464
  *         is_attribute = 1
  *     while c_node is not NULL and c_node.type != tree.XML_ELEMENT_NODE:
  *         c_node = c_node.parent             # <<<<<<<<<<<<<<
@@ -24290,7 +24217,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
     __pyx_v_c_node = __pyx_t_3;
   }
 
-  /* "src/lxml/apihelpers.pxi":470
+  /* "src/lxml/apihelpers.pxi":465
  *     while c_node is not NULL and c_node.type != tree.XML_ELEMENT_NODE:
  *         c_node = c_node.parent
  *     c_element = c_node             # <<<<<<<<<<<<<<
@@ -24299,7 +24226,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
  */
   __pyx_v_c_element = __pyx_v_c_node;
 
-  /* "src/lxml/apihelpers.pxi":471
+  /* "src/lxml/apihelpers.pxi":466
  *         c_node = c_node.parent
  *     c_element = c_node
  *     while c_node is not NULL:             # <<<<<<<<<<<<<<
@@ -24310,7 +24237,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
     __pyx_t_1 = ((__pyx_v_c_node != NULL) != 0);
     if (!__pyx_t_1) break;
 
-    /* "src/lxml/apihelpers.pxi":472
+    /* "src/lxml/apihelpers.pxi":467
  *     c_element = c_node
  *     while c_node is not NULL:
  *         if c_node.type == tree.XML_ELEMENT_NODE:             # <<<<<<<<<<<<<<
@@ -24320,7 +24247,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
     __pyx_t_1 = ((__pyx_v_c_node->type == XML_ELEMENT_NODE) != 0);
     if (__pyx_t_1) {
 
-      /* "src/lxml/apihelpers.pxi":473
+      /* "src/lxml/apihelpers.pxi":468
  *     while c_node is not NULL:
  *         if c_node.type == tree.XML_ELEMENT_NODE:
  *             c_ns = c_node.nsDef             # <<<<<<<<<<<<<<
@@ -24330,7 +24257,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
       __pyx_t_4 = __pyx_v_c_node->nsDef;
       __pyx_v_c_ns = __pyx_t_4;
 
-      /* "src/lxml/apihelpers.pxi":474
+      /* "src/lxml/apihelpers.pxi":469
  *         if c_node.type == tree.XML_ELEMENT_NODE:
  *             c_ns = c_node.nsDef
  *             while c_ns is not NULL:             # <<<<<<<<<<<<<<
@@ -24341,7 +24268,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
         __pyx_t_1 = ((__pyx_v_c_ns != NULL) != 0);
         if (!__pyx_t_1) break;
 
-        /* "src/lxml/apihelpers.pxi":475
+        /* "src/lxml/apihelpers.pxi":470
  *             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:             # <<<<<<<<<<<<<<
@@ -24359,7 +24286,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
         __pyx_L19_bool_binop_done:;
         if (__pyx_t_1) {
 
-          /* "src/lxml/apihelpers.pxi":476
+          /* "src/lxml/apihelpers.pxi":471
  *             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:             # <<<<<<<<<<<<<<
@@ -24377,7 +24304,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
           __pyx_L22_bool_binop_done:;
           if (__pyx_t_1) {
 
-            /* "src/lxml/apihelpers.pxi":480
+            /* "src/lxml/apihelpers.pxi":475
  *                         # prefix, but keep the first default namespace
  *                         # declaration that we found
  *                         if c_default_ns is NULL:             # <<<<<<<<<<<<<<
@@ -24387,7 +24314,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
             __pyx_t_1 = ((__pyx_v_c_default_ns == NULL) != 0);
             if (__pyx_t_1) {
 
-              /* "src/lxml/apihelpers.pxi":481
+              /* "src/lxml/apihelpers.pxi":476
  *                         # declaration that we found
  *                         if c_default_ns is NULL:
  *                             c_default_ns = c_ns             # <<<<<<<<<<<<<<
@@ -24396,7 +24323,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
  */
               __pyx_v_c_default_ns = __pyx_v_c_ns;
 
-              /* "src/lxml/apihelpers.pxi":480
+              /* "src/lxml/apihelpers.pxi":475
  *                         # prefix, but keep the first default namespace
  *                         # declaration that we found
  *                         if c_default_ns is NULL:             # <<<<<<<<<<<<<<
@@ -24405,7 +24332,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
  */
             }
 
-            /* "src/lxml/apihelpers.pxi":476
+            /* "src/lxml/apihelpers.pxi":471
  *             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:             # <<<<<<<<<<<<<<
@@ -24415,7 +24342,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
             goto __pyx_L21;
           }
 
-          /* "src/lxml/apihelpers.pxi":483
+          /* "src/lxml/apihelpers.pxi":478
  *                             c_default_ns = c_ns
  *                     elif tree.xmlSearchNs(
  *                         c_element.doc, c_element, c_ns.prefix) is c_ns:             # <<<<<<<<<<<<<<
@@ -24424,7 +24351,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
  */
           __pyx_t_1 = ((xmlSearchNs(__pyx_v_c_element->doc, __pyx_v_c_element, __pyx_v_c_ns->prefix) == __pyx_v_c_ns) != 0);
 
-          /* "src/lxml/apihelpers.pxi":482
+          /* "src/lxml/apihelpers.pxi":477
  *                         if c_default_ns is NULL:
  *                             c_default_ns = c_ns
  *                     elif tree.xmlSearchNs(             # <<<<<<<<<<<<<<
@@ -24433,7 +24360,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
  */
           if (__pyx_t_1) {
 
-            /* "src/lxml/apihelpers.pxi":485
+            /* "src/lxml/apihelpers.pxi":480
  *                         c_element.doc, c_element, c_ns.prefix) is c_ns:
  *                         # start node is in namespace scope => found!
  *                         return c_ns             # <<<<<<<<<<<<<<
@@ -24443,7 +24370,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
             __pyx_r = __pyx_v_c_ns;
             goto __pyx_L0;
 
-            /* "src/lxml/apihelpers.pxi":482
+            /* "src/lxml/apihelpers.pxi":477
  *                         if c_default_ns is NULL:
  *                             c_default_ns = c_ns
  *                     elif tree.xmlSearchNs(             # <<<<<<<<<<<<<<
@@ -24453,7 +24380,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
           }
           __pyx_L21:;
 
-          /* "src/lxml/apihelpers.pxi":475
+          /* "src/lxml/apihelpers.pxi":470
  *             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:             # <<<<<<<<<<<<<<
@@ -24462,7 +24389,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
  */
         }
 
-        /* "src/lxml/apihelpers.pxi":486
+        /* "src/lxml/apihelpers.pxi":481
  *                         # start node is in namespace scope => found!
  *                         return c_ns
  *                 c_ns = c_ns.next             # <<<<<<<<<<<<<<
@@ -24473,7 +24400,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
         __pyx_v_c_ns = __pyx_t_4;
       }
 
-      /* "src/lxml/apihelpers.pxi":487
+      /* "src/lxml/apihelpers.pxi":482
  *                         return c_ns
  *                 c_ns = c_ns.next
  *             if c_node is not c_element and c_node.ns is not NULL:             # <<<<<<<<<<<<<<
@@ -24491,7 +24418,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
       __pyx_L26_bool_binop_done:;
       if (__pyx_t_1) {
 
-        /* "src/lxml/apihelpers.pxi":489
+        /* "src/lxml/apihelpers.pxi":484
  *             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             # <<<<<<<<<<<<<<
@@ -24501,7 +24428,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
         __pyx_t_4 = __pyx_v_c_node->ns;
         __pyx_v_c_ns = __pyx_t_4;
 
-        /* "src/lxml/apihelpers.pxi":490
+        /* "src/lxml/apihelpers.pxi":485
  *                 # 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:             # <<<<<<<<<<<<<<
@@ -24519,7 +24446,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
         __pyx_L29_bool_binop_done:;
         if (__pyx_t_1) {
 
-          /* "src/lxml/apihelpers.pxi":491
+          /* "src/lxml/apihelpers.pxi":486
  *                 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:             # <<<<<<<<<<<<<<
@@ -24537,7 +24464,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
           __pyx_L32_bool_binop_done:;
           if (__pyx_t_1) {
 
-            /* "src/lxml/apihelpers.pxi":495
+            /* "src/lxml/apihelpers.pxi":490
  *                         # prefix, but keep the first default namespace
  *                         # declaration that we found
  *                         if c_default_ns is NULL:             # <<<<<<<<<<<<<<
@@ -24547,7 +24474,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
             __pyx_t_1 = ((__pyx_v_c_default_ns == NULL) != 0);
             if (__pyx_t_1) {
 
-              /* "src/lxml/apihelpers.pxi":496
+              /* "src/lxml/apihelpers.pxi":491
  *                         # declaration that we found
  *                         if c_default_ns is NULL:
  *                             c_default_ns = c_ns             # <<<<<<<<<<<<<<
@@ -24556,7 +24483,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
  */
               __pyx_v_c_default_ns = __pyx_v_c_ns;
 
-              /* "src/lxml/apihelpers.pxi":495
+              /* "src/lxml/apihelpers.pxi":490
  *                         # prefix, but keep the first default namespace
  *                         # declaration that we found
  *                         if c_default_ns is NULL:             # <<<<<<<<<<<<<<
@@ -24565,7 +24492,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
  */
             }
 
-            /* "src/lxml/apihelpers.pxi":491
+            /* "src/lxml/apihelpers.pxi":486
  *                 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:             # <<<<<<<<<<<<<<
@@ -24575,7 +24502,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
             goto __pyx_L31;
           }
 
-          /* "src/lxml/apihelpers.pxi":498
+          /* "src/lxml/apihelpers.pxi":493
  *                             c_default_ns = c_ns
  *                     elif tree.xmlSearchNs(
  *                         c_element.doc, c_element, c_ns.prefix) is c_ns:             # <<<<<<<<<<<<<<
@@ -24584,7 +24511,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
  */
           __pyx_t_1 = ((xmlSearchNs(__pyx_v_c_element->doc, __pyx_v_c_element, __pyx_v_c_ns->prefix) == __pyx_v_c_ns) != 0);
 
-          /* "src/lxml/apihelpers.pxi":497
+          /* "src/lxml/apihelpers.pxi":492
  *                         if c_default_ns is NULL:
  *                             c_default_ns = c_ns
  *                     elif tree.xmlSearchNs(             # <<<<<<<<<<<<<<
@@ -24593,7 +24520,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
  */
           if (__pyx_t_1) {
 
-            /* "src/lxml/apihelpers.pxi":500
+            /* "src/lxml/apihelpers.pxi":495
  *                         c_element.doc, c_element, c_ns.prefix) is c_ns:
  *                         # start node is in namespace scope => found!
  *                         return c_ns             # <<<<<<<<<<<<<<
@@ -24603,7 +24530,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
             __pyx_r = __pyx_v_c_ns;
             goto __pyx_L0;
 
-            /* "src/lxml/apihelpers.pxi":497
+            /* "src/lxml/apihelpers.pxi":492
  *                         if c_default_ns is NULL:
  *                             c_default_ns = c_ns
  *                     elif tree.xmlSearchNs(             # <<<<<<<<<<<<<<
@@ -24613,7 +24540,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
           }
           __pyx_L31:;
 
-          /* "src/lxml/apihelpers.pxi":490
+          /* "src/lxml/apihelpers.pxi":485
  *                 # 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:             # <<<<<<<<<<<<<<
@@ -24622,7 +24549,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
  */
         }
 
-        /* "src/lxml/apihelpers.pxi":487
+        /* "src/lxml/apihelpers.pxi":482
  *                         return c_ns
  *                 c_ns = c_ns.next
  *             if c_node is not c_element and c_node.ns is not NULL:             # <<<<<<<<<<<<<<
@@ -24631,7 +24558,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
  */
       }
 
-      /* "src/lxml/apihelpers.pxi":472
+      /* "src/lxml/apihelpers.pxi":467
  *     c_element = c_node
  *     while c_node is not NULL:
  *         if c_node.type == tree.XML_ELEMENT_NODE:             # <<<<<<<<<<<<<<
@@ -24640,7 +24567,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
  */
     }
 
-    /* "src/lxml/apihelpers.pxi":501
+    /* "src/lxml/apihelpers.pxi":496
  *                         # start node is in namespace scope => found!
  *                         return c_ns
  *         c_node = c_node.parent             # <<<<<<<<<<<<<<
@@ -24651,7 +24578,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
     __pyx_v_c_node = __pyx_t_3;
   }
 
-  /* "src/lxml/apihelpers.pxi":503
+  /* "src/lxml/apihelpers.pxi":498
  *         c_node = c_node.parent
  *     # nothing found => use a matching default namespace or fail
  *     if c_default_ns is not NULL:             # <<<<<<<<<<<<<<
@@ -24661,7 +24588,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
   __pyx_t_1 = ((__pyx_v_c_default_ns != NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "src/lxml/apihelpers.pxi":504
+    /* "src/lxml/apihelpers.pxi":499
  *     # 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:             # <<<<<<<<<<<<<<
@@ -24671,7 +24598,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
     __pyx_t_1 = ((xmlSearchNs(__pyx_v_c_element->doc, __pyx_v_c_element, NULL) == __pyx_v_c_default_ns) != 0);
     if (__pyx_t_1) {
 
-      /* "src/lxml/apihelpers.pxi":505
+      /* "src/lxml/apihelpers.pxi":500
  *     if c_default_ns is not NULL:
  *         if tree.xmlSearchNs(c_element.doc, c_element, NULL) is c_default_ns:
  *             return c_default_ns             # <<<<<<<<<<<<<<
@@ -24681,7 +24608,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
       __pyx_r = __pyx_v_c_default_ns;
       goto __pyx_L0;
 
-      /* "src/lxml/apihelpers.pxi":504
+      /* "src/lxml/apihelpers.pxi":499
  *     # 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:             # <<<<<<<<<<<<<<
@@ -24690,7 +24617,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
  */
     }
 
-    /* "src/lxml/apihelpers.pxi":503
+    /* "src/lxml/apihelpers.pxi":498
  *         c_node = c_node.parent
  *     # nothing found => use a matching default namespace or fail
  *     if c_default_ns is not NULL:             # <<<<<<<<<<<<<<
@@ -24699,7 +24626,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":506
+  /* "src/lxml/apihelpers.pxi":501
  *         if tree.xmlSearchNs(c_element.doc, c_element, NULL) is c_default_ns:
  *             return c_default_ns
  *     return NULL             # <<<<<<<<<<<<<<
@@ -24709,7 +24636,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
   __pyx_r = NULL;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":450
+  /* "src/lxml/apihelpers.pxi":445
  *     return 0
  * 
  * cdef xmlNs* _searchNsByHref(xmlNode* c_node, const_xmlChar* c_href, bint is_attribute):             # <<<<<<<<<<<<<<
@@ -24723,7 +24650,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":508
+/* "src/lxml/apihelpers.pxi":503
  *     return NULL
  * 
  * cdef int _replaceNodeByChildren(_Document doc, xmlNode* c_node) except -1:             # <<<<<<<<<<<<<<
@@ -24741,7 +24668,7 @@ static int __pyx_f_4lxml_5etree__replaceNodeByChildren(struct LxmlDocument *__py
   int __pyx_t_3;
   __Pyx_RefNannySetupContext("_replaceNodeByChildren", 0);
 
-  /* "src/lxml/apihelpers.pxi":512
+  /* "src/lxml/apihelpers.pxi":507
  *     cdef xmlNode* c_parent
  *     cdef xmlNode* c_child
  *     if c_node.children is NULL:             # <<<<<<<<<<<<<<
@@ -24751,7 +24678,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) {
 
-    /* "src/lxml/apihelpers.pxi":513
+    /* "src/lxml/apihelpers.pxi":508
  *     cdef xmlNode* c_child
  *     if c_node.children is NULL:
  *         tree.xmlUnlinkNode(c_node)             # <<<<<<<<<<<<<<
@@ -24760,7 +24687,7 @@ static int __pyx_f_4lxml_5etree__replaceNodeByChildren(struct LxmlDocument *__py
  */
     xmlUnlinkNode(__pyx_v_c_node);
 
-    /* "src/lxml/apihelpers.pxi":514
+    /* "src/lxml/apihelpers.pxi":509
  *     if c_node.children is NULL:
  *         tree.xmlUnlinkNode(c_node)
  *         return 0             # <<<<<<<<<<<<<<
@@ -24770,7 +24697,7 @@ static int __pyx_f_4lxml_5etree__replaceNodeByChildren(struct LxmlDocument *__py
     __pyx_r = 0;
     goto __pyx_L0;
 
-    /* "src/lxml/apihelpers.pxi":512
+    /* "src/lxml/apihelpers.pxi":507
  *     cdef xmlNode* c_parent
  *     cdef xmlNode* c_child
  *     if c_node.children is NULL:             # <<<<<<<<<<<<<<
@@ -24779,7 +24706,7 @@ static int __pyx_f_4lxml_5etree__replaceNodeByChildren(struct LxmlDocument *__py
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":516
+  /* "src/lxml/apihelpers.pxi":511
  *         return 0
  * 
  *     c_parent = c_node.parent             # <<<<<<<<<<<<<<
@@ -24789,7 +24716,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;
 
-  /* "src/lxml/apihelpers.pxi":518
+  /* "src/lxml/apihelpers.pxi":513
  *     c_parent = c_node.parent
  *     # fix parent links of children
  *     c_child = c_node.children             # <<<<<<<<<<<<<<
@@ -24799,7 +24726,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;
 
-  /* "src/lxml/apihelpers.pxi":519
+  /* "src/lxml/apihelpers.pxi":514
  *     # fix parent links of children
  *     c_child = c_node.children
  *     while c_child is not NULL:             # <<<<<<<<<<<<<<
@@ -24810,7 +24737,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;
 
-    /* "src/lxml/apihelpers.pxi":520
+    /* "src/lxml/apihelpers.pxi":515
  *     c_child = c_node.children
  *     while c_child is not NULL:
  *         c_child.parent = c_parent             # <<<<<<<<<<<<<<
@@ -24819,7 +24746,7 @@ static int __pyx_f_4lxml_5etree__replaceNodeByChildren(struct LxmlDocument *__py
  */
     __pyx_v_c_child->parent = __pyx_v_c_parent;
 
-    /* "src/lxml/apihelpers.pxi":521
+    /* "src/lxml/apihelpers.pxi":516
  *     while c_child is not NULL:
  *         c_child.parent = c_parent
  *         c_child = c_child.next             # <<<<<<<<<<<<<<
@@ -24830,7 +24757,7 @@ static int __pyx_f_4lxml_5etree__replaceNodeByChildren(struct LxmlDocument *__py
     __pyx_v_c_child = __pyx_t_2;
   }
 
-  /* "src/lxml/apihelpers.pxi":525
+  /* "src/lxml/apihelpers.pxi":520
  *     # fix namespace references of children if their parent's namespace
  *     # declarations get lost
  *     if c_node.nsDef is not NULL:             # <<<<<<<<<<<<<<
@@ -24840,7 +24767,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) {
 
-    /* "src/lxml/apihelpers.pxi":526
+    /* "src/lxml/apihelpers.pxi":521
  *     # declarations get lost
  *     if c_node.nsDef is not NULL:
  *         c_child = c_node.children             # <<<<<<<<<<<<<<
@@ -24850,7 +24777,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;
 
-    /* "src/lxml/apihelpers.pxi":527
+    /* "src/lxml/apihelpers.pxi":522
  *     if c_node.nsDef is not NULL:
  *         c_child = c_node.children
  *         while c_child is not NULL:             # <<<<<<<<<<<<<<
@@ -24861,16 +24788,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;
 
-      /* "src/lxml/apihelpers.pxi":528
+      /* "src/lxml/apihelpers.pxi":523
  *         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 == ((int)-1))) __PYX_ERR(5, 528, __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 == ((int)-1))) __PYX_ERR(5, 523, __pyx_L1_error)
 
-      /* "src/lxml/apihelpers.pxi":529
+      /* "src/lxml/apihelpers.pxi":524
  *         while c_child is not NULL:
  *             moveNodeToDocument(doc, doc._c_doc, c_child)
  *             c_child = c_child.next             # <<<<<<<<<<<<<<
@@ -24881,7 +24808,7 @@ static int __pyx_f_4lxml_5etree__replaceNodeByChildren(struct LxmlDocument *__py
       __pyx_v_c_child = __pyx_t_2;
     }
 
-    /* "src/lxml/apihelpers.pxi":525
+    /* "src/lxml/apihelpers.pxi":520
  *     # fix namespace references of children if their parent's namespace
  *     # declarations get lost
  *     if c_node.nsDef is not NULL:             # <<<<<<<<<<<<<<
@@ -24890,7 +24817,7 @@ static int __pyx_f_4lxml_5etree__replaceNodeByChildren(struct LxmlDocument *__py
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":532
+  /* "src/lxml/apihelpers.pxi":527
  * 
  *     # fix sibling links to/from child slice
  *     if c_node.prev is NULL:             # <<<<<<<<<<<<<<
@@ -24900,7 +24827,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) {
 
-    /* "src/lxml/apihelpers.pxi":533
+    /* "src/lxml/apihelpers.pxi":528
  *     # fix sibling links to/from child slice
  *     if c_node.prev is NULL:
  *         c_parent.children = c_node.children             # <<<<<<<<<<<<<<
@@ -24910,7 +24837,7 @@ static int __pyx_f_4lxml_5etree__replaceNodeByChildren(struct LxmlDocument *__py
     __pyx_t_2 = __pyx_v_c_node->children;
     __pyx_v_c_parent->children = __pyx_t_2;
 
-    /* "src/lxml/apihelpers.pxi":532
+    /* "src/lxml/apihelpers.pxi":527
  * 
  *     # fix sibling links to/from child slice
  *     if c_node.prev is NULL:             # <<<<<<<<<<<<<<
@@ -24920,7 +24847,7 @@ static int __pyx_f_4lxml_5etree__replaceNodeByChildren(struct LxmlDocument *__py
     goto __pyx_L9;
   }
 
-  /* "src/lxml/apihelpers.pxi":535
+  /* "src/lxml/apihelpers.pxi":530
  *         c_parent.children = c_node.children
  *     else:
  *         c_node.prev.next = c_node.children             # <<<<<<<<<<<<<<
@@ -24931,7 +24858,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;
 
-    /* "src/lxml/apihelpers.pxi":536
+    /* "src/lxml/apihelpers.pxi":531
  *     else:
  *         c_node.prev.next = c_node.children
  *         c_node.children.prev = c_node.prev             # <<<<<<<<<<<<<<
@@ -24943,7 +24870,7 @@ static int __pyx_f_4lxml_5etree__replaceNodeByChildren(struct LxmlDocument *__py
   }
   __pyx_L9:;
 
-  /* "src/lxml/apihelpers.pxi":537
+  /* "src/lxml/apihelpers.pxi":532
  *         c_node.prev.next = c_node.children
  *         c_node.children.prev = c_node.prev
  *     if c_node.next is NULL:             # <<<<<<<<<<<<<<
@@ -24953,7 +24880,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) {
 
-    /* "src/lxml/apihelpers.pxi":538
+    /* "src/lxml/apihelpers.pxi":533
  *         c_node.children.prev = c_node.prev
  *     if c_node.next is NULL:
  *         c_parent.last = c_node.last             # <<<<<<<<<<<<<<
@@ -24963,7 +24890,7 @@ static int __pyx_f_4lxml_5etree__replaceNodeByChildren(struct LxmlDocument *__py
     __pyx_t_2 = __pyx_v_c_node->last;
     __pyx_v_c_parent->last = __pyx_t_2;
 
-    /* "src/lxml/apihelpers.pxi":537
+    /* "src/lxml/apihelpers.pxi":532
  *         c_node.prev.next = c_node.children
  *         c_node.children.prev = c_node.prev
  *     if c_node.next is NULL:             # <<<<<<<<<<<<<<
@@ -24973,7 +24900,7 @@ static int __pyx_f_4lxml_5etree__replaceNodeByChildren(struct LxmlDocument *__py
     goto __pyx_L10;
   }
 
-  /* "src/lxml/apihelpers.pxi":540
+  /* "src/lxml/apihelpers.pxi":535
  *         c_parent.last = c_node.last
  *     else:
  *         c_node.next.prev = c_node.last             # <<<<<<<<<<<<<<
@@ -24984,7 +24911,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;
 
-    /* "src/lxml/apihelpers.pxi":541
+    /* "src/lxml/apihelpers.pxi":536
  *     else:
  *         c_node.next.prev = c_node.last
  *         c_node.last.next = c_node.next             # <<<<<<<<<<<<<<
@@ -24996,7 +24923,7 @@ static int __pyx_f_4lxml_5etree__replaceNodeByChildren(struct LxmlDocument *__py
   }
   __pyx_L10:;
 
-  /* "src/lxml/apihelpers.pxi":544
+  /* "src/lxml/apihelpers.pxi":539
  * 
  *     # unlink c_node
  *     c_node.children = c_node.last = NULL             # <<<<<<<<<<<<<<
@@ -25006,7 +24933,7 @@ static int __pyx_f_4lxml_5etree__replaceNodeByChildren(struct LxmlDocument *__py
   __pyx_v_c_node->children = NULL;
   __pyx_v_c_node->last = NULL;
 
-  /* "src/lxml/apihelpers.pxi":545
+  /* "src/lxml/apihelpers.pxi":540
  *     # unlink c_node
  *     c_node.children = c_node.last = NULL
  *     c_node.parent = c_node.next = c_node.prev = NULL             # <<<<<<<<<<<<<<
@@ -25017,7 +24944,7 @@ static int __pyx_f_4lxml_5etree__replaceNodeByChildren(struct LxmlDocument *__py
   __pyx_v_c_node->next = NULL;
   __pyx_v_c_node->prev = NULL;
 
-  /* "src/lxml/apihelpers.pxi":546
+  /* "src/lxml/apihelpers.pxi":541
  *     c_node.children = c_node.last = NULL
  *     c_node.parent = c_node.next = c_node.prev = NULL
  *     return 0             # <<<<<<<<<<<<<<
@@ -25027,7 +24954,7 @@ static int __pyx_f_4lxml_5etree__replaceNodeByChildren(struct LxmlDocument *__py
   __pyx_r = 0;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":508
+  /* "src/lxml/apihelpers.pxi":503
  *     return NULL
  * 
  * cdef int _replaceNodeByChildren(_Document doc, xmlNode* c_node) except -1:             # <<<<<<<<<<<<<<
@@ -25044,7 +24971,7 @@ static int __pyx_f_4lxml_5etree__replaceNodeByChildren(struct LxmlDocument *__py
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":548
+/* "src/lxml/apihelpers.pxi":543
  *     return 0
  * 
  * cdef object _attributeValue(xmlNode* c_element, xmlAttr* c_attrib_node):             # <<<<<<<<<<<<<<
@@ -25070,7 +24997,7 @@ static PyObject *__pyx_f_4lxml_5etree__attributeValue(xmlNode *__pyx_v_c_element
   PyObject *__pyx_t_10 = NULL;
   __Pyx_RefNannySetupContext("_attributeValue", 0);
 
-  /* "src/lxml/apihelpers.pxi":549
+  /* "src/lxml/apihelpers.pxi":544
  * 
  * cdef object _attributeValue(xmlNode* c_element, xmlAttr* c_attrib_node):
  *     c_href = _getNs(<xmlNode*>c_attrib_node)             # <<<<<<<<<<<<<<
@@ -25079,7 +25006,7 @@ static PyObject *__pyx_f_4lxml_5etree__attributeValue(xmlNode *__pyx_v_c_element
  */
   __pyx_v_c_href = _getNs(((xmlNode *)__pyx_v_c_attrib_node));
 
-  /* "src/lxml/apihelpers.pxi":550
+  /* "src/lxml/apihelpers.pxi":545
  * 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)             # <<<<<<<<<<<<<<
@@ -25088,7 +25015,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);
 
-  /* "src/lxml/apihelpers.pxi":551
+  /* "src/lxml/apihelpers.pxi":546
  *     c_href = _getNs(<xmlNode*>c_attrib_node)
  *     value = tree.xmlGetNsProp(c_element, c_attrib_node.name, c_href)
  *     try:             # <<<<<<<<<<<<<<
@@ -25097,20 +25024,20 @@ static PyObject *__pyx_f_4lxml_5etree__attributeValue(xmlNode *__pyx_v_c_element
  */
   /*try:*/ {
 
-    /* "src/lxml/apihelpers.pxi":552
+    /* "src/lxml/apihelpers.pxi":547
  *     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_ERR(5, 552, __pyx_L4_error)
+    __pyx_t_1 = __pyx_f_4lxml_5etree_funicode(__pyx_v_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 547, __pyx_L4_error)
     __Pyx_GOTREF(__pyx_t_1);
     __pyx_v_result = __pyx_t_1;
     __pyx_t_1 = 0;
   }
 
-  /* "src/lxml/apihelpers.pxi":554
+  /* "src/lxml/apihelpers.pxi":549
  *         result = funicode(value)
  *     finally:
  *         tree.xmlFree(value)             # <<<<<<<<<<<<<<
@@ -25157,7 +25084,7 @@ static PyObject *__pyx_f_4lxml_5etree__attributeValue(xmlNode *__pyx_v_c_element
     __pyx_L5:;
   }
 
-  /* "src/lxml/apihelpers.pxi":555
+  /* "src/lxml/apihelpers.pxi":550
  *     finally:
  *         tree.xmlFree(value)
  *     return result             # <<<<<<<<<<<<<<
@@ -25169,7 +25096,7 @@ static PyObject *__pyx_f_4lxml_5etree__attributeValue(xmlNode *__pyx_v_c_element
   __pyx_r = __pyx_v_result;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":548
+  /* "src/lxml/apihelpers.pxi":543
  *     return 0
  * 
  * cdef object _attributeValue(xmlNode* c_element, xmlAttr* c_attrib_node):             # <<<<<<<<<<<<<<
@@ -25189,7 +25116,7 @@ static PyObject *__pyx_f_4lxml_5etree__attributeValue(xmlNode *__pyx_v_c_element
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":557
+/* "src/lxml/apihelpers.pxi":552
  *     return result
  * 
  * cdef object _attributeValueFromNsName(xmlNode* c_element,             # <<<<<<<<<<<<<<
@@ -25215,7 +25142,7 @@ static PyObject *__pyx_f_4lxml_5etree__attributeValueFromNsName(xmlNode *__pyx_v
   PyObject *__pyx_t_11 = NULL;
   __Pyx_RefNannySetupContext("_attributeValueFromNsName", 0);
 
-  /* "src/lxml/apihelpers.pxi":559
+  /* "src/lxml/apihelpers.pxi":554
  * cdef object _attributeValueFromNsName(xmlNode* c_element,
  *                                       const_xmlChar* c_href, const_xmlChar* c_name):
  *     c_result = tree.xmlGetNsProp(c_element, c_name, c_href)             # <<<<<<<<<<<<<<
@@ -25224,7 +25151,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);
 
-  /* "src/lxml/apihelpers.pxi":560
+  /* "src/lxml/apihelpers.pxi":555
  *                                       const_xmlChar* c_href, const_xmlChar* c_name):
  *     c_result = tree.xmlGetNsProp(c_element, c_name, c_href)
  *     if c_result is NULL:             # <<<<<<<<<<<<<<
@@ -25234,7 +25161,7 @@ static PyObject *__pyx_f_4lxml_5etree__attributeValueFromNsName(xmlNode *__pyx_v
   __pyx_t_1 = ((__pyx_v_c_result == NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "src/lxml/apihelpers.pxi":561
+    /* "src/lxml/apihelpers.pxi":556
  *     c_result = tree.xmlGetNsProp(c_element, c_name, c_href)
  *     if c_result is NULL:
  *         return None             # <<<<<<<<<<<<<<
@@ -25245,7 +25172,7 @@ static PyObject *__pyx_f_4lxml_5etree__attributeValueFromNsName(xmlNode *__pyx_v
     __pyx_r = Py_None; __Pyx_INCREF(Py_None);
     goto __pyx_L0;
 
-    /* "src/lxml/apihelpers.pxi":560
+    /* "src/lxml/apihelpers.pxi":555
  *                                       const_xmlChar* c_href, const_xmlChar* c_name):
  *     c_result = tree.xmlGetNsProp(c_element, c_name, c_href)
  *     if c_result is NULL:             # <<<<<<<<<<<<<<
@@ -25254,7 +25181,7 @@ static PyObject *__pyx_f_4lxml_5etree__attributeValueFromNsName(xmlNode *__pyx_v
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":562
+  /* "src/lxml/apihelpers.pxi":557
  *     if c_result is NULL:
  *         return None
  *     try:             # <<<<<<<<<<<<<<
@@ -25263,20 +25190,20 @@ static PyObject *__pyx_f_4lxml_5etree__attributeValueFromNsName(xmlNode *__pyx_v
  */
   /*try:*/ {
 
-    /* "src/lxml/apihelpers.pxi":563
+    /* "src/lxml/apihelpers.pxi":558
  *         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_ERR(5, 563, __pyx_L5_error)
+    __pyx_t_2 = __pyx_f_4lxml_5etree_funicode(__pyx_v_c_result); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 558, __pyx_L5_error)
     __Pyx_GOTREF(__pyx_t_2);
     __pyx_v_result = __pyx_t_2;
     __pyx_t_2 = 0;
   }
 
-  /* "src/lxml/apihelpers.pxi":565
+  /* "src/lxml/apihelpers.pxi":560
  *         result = funicode(c_result)
  *     finally:
  *         tree.xmlFree(c_result)             # <<<<<<<<<<<<<<
@@ -25323,7 +25250,7 @@ static PyObject *__pyx_f_4lxml_5etree__attributeValueFromNsName(xmlNode *__pyx_v
     __pyx_L6:;
   }
 
-  /* "src/lxml/apihelpers.pxi":566
+  /* "src/lxml/apihelpers.pxi":561
  *     finally:
  *         tree.xmlFree(c_result)
  *     return result             # <<<<<<<<<<<<<<
@@ -25335,7 +25262,7 @@ static PyObject *__pyx_f_4lxml_5etree__attributeValueFromNsName(xmlNode *__pyx_v
   __pyx_r = __pyx_v_result;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":557
+  /* "src/lxml/apihelpers.pxi":552
  *     return result
  * 
  * cdef object _attributeValueFromNsName(xmlNode* c_element,             # <<<<<<<<<<<<<<
@@ -25355,7 +25282,7 @@ static PyObject *__pyx_f_4lxml_5etree__attributeValueFromNsName(xmlNode *__pyx_v
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":568
+/* "src/lxml/apihelpers.pxi":563
  *     return result
  * 
  * cdef object _getNodeAttributeValue(xmlNode* c_node, key, default):             # <<<<<<<<<<<<<<
@@ -25387,14 +25314,14 @@ static PyObject *__pyx_f_4lxml_5etree__getNodeAttributeValue(xmlNode *__pyx_v_c_
   PyObject *__pyx_t_14 = NULL;
   __Pyx_RefNannySetupContext("_getNodeAttributeValue", 0);
 
-  /* "src/lxml/apihelpers.pxi":569
+  /* "src/lxml/apihelpers.pxi":564
  * 
  * 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_ERR(5, 569, __pyx_L1_error)
+  __pyx_t_1 = __pyx_f_4lxml_5etree__getNsTag(__pyx_v_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 564, __pyx_L1_error)
   __Pyx_GOTREF(__pyx_t_1);
   if (likely(__pyx_t_1 != Py_None)) {
     PyObject* sequence = __pyx_t_1;
@@ -25402,7 +25329,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_ERR(5, 569, __pyx_L1_error)
+      __PYX_ERR(5, 564, __pyx_L1_error)
     }
     #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
     __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); 
@@ -25410,21 +25337,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_ERR(5, 569, __pyx_L1_error)
+    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 564, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_2);
-    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 569, __pyx_L1_error)
+    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 564, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_3);
     #endif
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   } else {
-    __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(5, 569, __pyx_L1_error)
+    __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(5, 564, __pyx_L1_error)
   }
   __pyx_v_ns = __pyx_t_2;
   __pyx_t_2 = 0;
   __pyx_v_tag = __pyx_t_3;
   __pyx_t_3 = 0;
 
-  /* "src/lxml/apihelpers.pxi":570
+  /* "src/lxml/apihelpers.pxi":565
  * cdef object _getNodeAttributeValue(xmlNode* c_node, key, default):
  *     ns, tag = _getNsTag(key)
  *     c_href = <const_xmlChar*>NULL if ns is None else _xcstr(ns)             # <<<<<<<<<<<<<<
@@ -25439,7 +25366,7 @@ static PyObject *__pyx_f_4lxml_5etree__getNodeAttributeValue(xmlNode *__pyx_v_c_
   }
   __pyx_v_c_href = __pyx_t_4;
 
-  /* "src/lxml/apihelpers.pxi":571
+  /* "src/lxml/apihelpers.pxi":566
  *     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)             # <<<<<<<<<<<<<<
@@ -25448,7 +25375,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);
 
-  /* "src/lxml/apihelpers.pxi":572
+  /* "src/lxml/apihelpers.pxi":567
  *     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:             # <<<<<<<<<<<<<<
@@ -25458,7 +25385,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) {
 
-    /* "src/lxml/apihelpers.pxi":574
+    /* "src/lxml/apihelpers.pxi":569
  *     if c_result is NULL:
  *         # XXX free namespace that is not in use..?
  *         return default             # <<<<<<<<<<<<<<
@@ -25470,7 +25397,7 @@ static PyObject *__pyx_f_4lxml_5etree__getNodeAttributeValue(xmlNode *__pyx_v_c_
     __pyx_r = __pyx_v_default;
     goto __pyx_L0;
 
-    /* "src/lxml/apihelpers.pxi":572
+    /* "src/lxml/apihelpers.pxi":567
  *     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:             # <<<<<<<<<<<<<<
@@ -25479,7 +25406,7 @@ static PyObject *__pyx_f_4lxml_5etree__getNodeAttributeValue(xmlNode *__pyx_v_c_
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":575
+  /* "src/lxml/apihelpers.pxi":570
  *         # XXX free namespace that is not in use..?
  *         return default
  *     try:             # <<<<<<<<<<<<<<
@@ -25488,20 +25415,20 @@ static PyObject *__pyx_f_4lxml_5etree__getNodeAttributeValue(xmlNode *__pyx_v_c_
  */
   /*try:*/ {
 
-    /* "src/lxml/apihelpers.pxi":576
+    /* "src/lxml/apihelpers.pxi":571
  *         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_ERR(5, 576, __pyx_L5_error)
+    __pyx_t_1 = __pyx_f_4lxml_5etree_funicode(__pyx_v_c_result); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 571, __pyx_L5_error)
     __Pyx_GOTREF(__pyx_t_1);
     __pyx_v_result = __pyx_t_1;
     __pyx_t_1 = 0;
   }
 
-  /* "src/lxml/apihelpers.pxi":578
+  /* "src/lxml/apihelpers.pxi":573
  *         result = funicode(c_result)
  *     finally:
  *         tree.xmlFree(c_result)             # <<<<<<<<<<<<<<
@@ -25550,7 +25477,7 @@ static PyObject *__pyx_f_4lxml_5etree__getNodeAttributeValue(xmlNode *__pyx_v_c_
     __pyx_L6:;
   }
 
-  /* "src/lxml/apihelpers.pxi":579
+  /* "src/lxml/apihelpers.pxi":574
  *     finally:
  *         tree.xmlFree(c_result)
  *     return result             # <<<<<<<<<<<<<<
@@ -25562,7 +25489,7 @@ static PyObject *__pyx_f_4lxml_5etree__getNodeAttributeValue(xmlNode *__pyx_v_c_
   __pyx_r = __pyx_v_result;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":568
+  /* "src/lxml/apihelpers.pxi":563
  *     return result
  * 
  * cdef object _getNodeAttributeValue(xmlNode* c_node, key, default):             # <<<<<<<<<<<<<<
@@ -25586,7 +25513,7 @@ static PyObject *__pyx_f_4lxml_5etree__getNodeAttributeValue(xmlNode *__pyx_v_c_
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":581
+/* "src/lxml/apihelpers.pxi":576
  *     return result
  * 
  * cdef inline object _getAttributeValue(_Element element, key, default):             # <<<<<<<<<<<<<<
@@ -25600,7 +25527,7 @@ static CYTHON_INLINE PyObject *__pyx_f_4lxml_5etree__getAttributeValue(struct Lx
   PyObject *__pyx_t_1 = NULL;
   __Pyx_RefNannySetupContext("_getAttributeValue", 0);
 
-  /* "src/lxml/apihelpers.pxi":582
+  /* "src/lxml/apihelpers.pxi":577
  * 
  * cdef inline object _getAttributeValue(_Element element, key, default):
  *     return _getNodeAttributeValue(element._c_node, key, default)             # <<<<<<<<<<<<<<
@@ -25608,13 +25535,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_ERR(5, 582, __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_ERR(5, 577, __pyx_L1_error)
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = __pyx_t_1;
   __pyx_t_1 = 0;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":581
+  /* "src/lxml/apihelpers.pxi":576
  *     return result
  * 
  * cdef inline object _getAttributeValue(_Element element, key, default):             # <<<<<<<<<<<<<<
@@ -25633,7 +25560,7 @@ static CYTHON_INLINE PyObject *__pyx_f_4lxml_5etree__getAttributeValue(struct Lx
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":584
+/* "src/lxml/apihelpers.pxi":579
  *     return _getNodeAttributeValue(element._c_node, key, default)
  * 
  * cdef int _setAttributeValue(_Element element, key, value) except -1:             # <<<<<<<<<<<<<<
@@ -25661,14 +25588,14 @@ static int __pyx_f_4lxml_5etree__setAttributeValue(struct LxmlElement *__pyx_v_e
   __Pyx_RefNannySetupContext("_setAttributeValue", 0);
   __Pyx_INCREF(__pyx_v_value);
 
-  /* "src/lxml/apihelpers.pxi":587
+  /* "src/lxml/apihelpers.pxi":582
  *     cdef const_xmlChar* c_value
  *     cdef xmlNs* c_ns
  *     ns, tag = _getNsTag(key)             # <<<<<<<<<<<<<<
  *     is_html = element._doc._parser._for_html
  *     if not is_html:
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__getNsTag(__pyx_v_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 587, __pyx_L1_error)
+  __pyx_t_1 = __pyx_f_4lxml_5etree__getNsTag(__pyx_v_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 582, __pyx_L1_error)
   __Pyx_GOTREF(__pyx_t_1);
   if (likely(__pyx_t_1 != Py_None)) {
     PyObject* sequence = __pyx_t_1;
@@ -25676,7 +25603,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_ERR(5, 587, __pyx_L1_error)
+      __PYX_ERR(5, 582, __pyx_L1_error)
     }
     #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
     __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); 
@@ -25684,21 +25611,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_ERR(5, 587, __pyx_L1_error)
+    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 582, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_2);
-    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 587, __pyx_L1_error)
+    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 582, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_3);
     #endif
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   } else {
-    __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(5, 587, __pyx_L1_error)
+    __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(5, 582, __pyx_L1_error)
   }
   __pyx_v_ns = __pyx_t_2;
   __pyx_t_2 = 0;
   __pyx_v_tag = __pyx_t_3;
   __pyx_t_3 = 0;
 
-  /* "src/lxml/apihelpers.pxi":588
+  /* "src/lxml/apihelpers.pxi":583
  *     cdef xmlNs* c_ns
  *     ns, tag = _getNsTag(key)
  *     is_html = element._doc._parser._for_html             # <<<<<<<<<<<<<<
@@ -25708,7 +25635,7 @@ static int __pyx_f_4lxml_5etree__setAttributeValue(struct LxmlElement *__pyx_v_e
   __pyx_t_4 = __pyx_v_element->_doc->_parser->_for_html;
   __pyx_v_is_html = __pyx_t_4;
 
-  /* "src/lxml/apihelpers.pxi":589
+  /* "src/lxml/apihelpers.pxi":584
  *     ns, tag = _getNsTag(key)
  *     is_html = element._doc._parser._for_html
  *     if not is_html:             # <<<<<<<<<<<<<<
@@ -25718,16 +25645,16 @@ static int __pyx_f_4lxml_5etree__setAttributeValue(struct LxmlElement *__pyx_v_e
   __pyx_t_4 = ((!(__pyx_v_is_html != 0)) != 0);
   if (__pyx_t_4) {
 
-    /* "src/lxml/apihelpers.pxi":590
+    /* "src/lxml/apihelpers.pxi":585
  *     is_html = element._doc._parser._for_html
  *     if not is_html:
  *         _attributeValidOrRaise(tag)             # <<<<<<<<<<<<<<
  *     c_tag = _xcstr(tag)
  *     if value is None and is_html:
  */
-    __pyx_t_5 = __pyx_f_4lxml_5etree__attributeValidOrRaise(__pyx_v_tag); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(5, 590, __pyx_L1_error)
+    __pyx_t_5 = __pyx_f_4lxml_5etree__attributeValidOrRaise(__pyx_v_tag); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(5, 585, __pyx_L1_error)
 
-    /* "src/lxml/apihelpers.pxi":589
+    /* "src/lxml/apihelpers.pxi":584
  *     ns, tag = _getNsTag(key)
  *     is_html = element._doc._parser._for_html
  *     if not is_html:             # <<<<<<<<<<<<<<
@@ -25736,7 +25663,7 @@ static int __pyx_f_4lxml_5etree__setAttributeValue(struct LxmlElement *__pyx_v_e
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":591
+  /* "src/lxml/apihelpers.pxi":586
  *     if not is_html:
  *         _attributeValidOrRaise(tag)
  *     c_tag = _xcstr(tag)             # <<<<<<<<<<<<<<
@@ -25745,7 +25672,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);
 
-  /* "src/lxml/apihelpers.pxi":592
+  /* "src/lxml/apihelpers.pxi":587
  *         _attributeValidOrRaise(tag)
  *     c_tag = _xcstr(tag)
  *     if value is None and is_html:             # <<<<<<<<<<<<<<
@@ -25764,7 +25691,7 @@ static int __pyx_f_4lxml_5etree__setAttributeValue(struct LxmlElement *__pyx_v_e
   __pyx_L5_bool_binop_done:;
   if (__pyx_t_4) {
 
-    /* "src/lxml/apihelpers.pxi":593
+    /* "src/lxml/apihelpers.pxi":588
  *     c_tag = _xcstr(tag)
  *     if value is None and is_html:
  *         c_value = NULL             # <<<<<<<<<<<<<<
@@ -25773,7 +25700,7 @@ static int __pyx_f_4lxml_5etree__setAttributeValue(struct LxmlElement *__pyx_v_e
  */
     __pyx_v_c_value = NULL;
 
-    /* "src/lxml/apihelpers.pxi":592
+    /* "src/lxml/apihelpers.pxi":587
  *         _attributeValidOrRaise(tag)
  *     c_tag = _xcstr(tag)
  *     if value is None and is_html:             # <<<<<<<<<<<<<<
@@ -25783,7 +25710,7 @@ static int __pyx_f_4lxml_5etree__setAttributeValue(struct LxmlElement *__pyx_v_e
     goto __pyx_L4;
   }
 
-  /* "src/lxml/apihelpers.pxi":595
+  /* "src/lxml/apihelpers.pxi":590
  *         c_value = NULL
  *     else:
  *         if isinstance(value, QName):             # <<<<<<<<<<<<<<
@@ -25795,19 +25722,19 @@ static int __pyx_f_4lxml_5etree__setAttributeValue(struct LxmlElement *__pyx_v_e
     __pyx_t_7 = (__pyx_t_4 != 0);
     if (__pyx_t_7) {
 
-      /* "src/lxml/apihelpers.pxi":596
+      /* "src/lxml/apihelpers.pxi":591
  *     else:
  *         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_ERR(5, 596, __pyx_L1_error)
+      __pyx_t_1 = __pyx_f_4lxml_5etree__resolveQNameText(__pyx_v_element, __pyx_v_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 591, __pyx_L1_error)
       __Pyx_GOTREF(__pyx_t_1);
       __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_1);
       __pyx_t_1 = 0;
 
-      /* "src/lxml/apihelpers.pxi":595
+      /* "src/lxml/apihelpers.pxi":590
  *         c_value = NULL
  *     else:
  *         if isinstance(value, QName):             # <<<<<<<<<<<<<<
@@ -25817,7 +25744,7 @@ static int __pyx_f_4lxml_5etree__setAttributeValue(struct LxmlElement *__pyx_v_e
       goto __pyx_L7;
     }
 
-    /* "src/lxml/apihelpers.pxi":598
+    /* "src/lxml/apihelpers.pxi":593
  *             value = _resolveQNameText(element, value)
  *         else:
  *             value = _utf8(value)             # <<<<<<<<<<<<<<
@@ -25825,14 +25752,14 @@ static int __pyx_f_4lxml_5etree__setAttributeValue(struct LxmlElement *__pyx_v_e
  *     if ns is None:
  */
     /*else*/ {
-      __pyx_t_1 = __pyx_f_4lxml_5etree__utf8(__pyx_v_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 598, __pyx_L1_error)
+      __pyx_t_1 = __pyx_f_4lxml_5etree__utf8(__pyx_v_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 593, __pyx_L1_error)
       __Pyx_GOTREF(__pyx_t_1);
       __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_1);
       __pyx_t_1 = 0;
     }
     __pyx_L7:;
 
-    /* "src/lxml/apihelpers.pxi":599
+    /* "src/lxml/apihelpers.pxi":594
  *         else:
  *             value = _utf8(value)
  *         c_value = _xcstr(value)             # <<<<<<<<<<<<<<
@@ -25843,7 +25770,7 @@ static int __pyx_f_4lxml_5etree__setAttributeValue(struct LxmlElement *__pyx_v_e
   }
   __pyx_L4:;
 
-  /* "src/lxml/apihelpers.pxi":600
+  /* "src/lxml/apihelpers.pxi":595
  *             value = _utf8(value)
  *         c_value = _xcstr(value)
  *     if ns is None:             # <<<<<<<<<<<<<<
@@ -25854,7 +25781,7 @@ static int __pyx_f_4lxml_5etree__setAttributeValue(struct LxmlElement *__pyx_v_e
   __pyx_t_4 = (__pyx_t_7 != 0);
   if (__pyx_t_4) {
 
-    /* "src/lxml/apihelpers.pxi":601
+    /* "src/lxml/apihelpers.pxi":596
  *         c_value = _xcstr(value)
  *     if ns is None:
  *         c_ns = NULL             # <<<<<<<<<<<<<<
@@ -25863,7 +25790,7 @@ static int __pyx_f_4lxml_5etree__setAttributeValue(struct LxmlElement *__pyx_v_e
  */
     __pyx_v_c_ns = NULL;
 
-    /* "src/lxml/apihelpers.pxi":600
+    /* "src/lxml/apihelpers.pxi":595
  *             value = _utf8(value)
  *         c_value = _xcstr(value)
  *     if ns is None:             # <<<<<<<<<<<<<<
@@ -25873,7 +25800,7 @@ static int __pyx_f_4lxml_5etree__setAttributeValue(struct LxmlElement *__pyx_v_e
     goto __pyx_L8;
   }
 
-  /* "src/lxml/apihelpers.pxi":603
+  /* "src/lxml/apihelpers.pxi":598
  *         c_ns = NULL
  *     else:
  *         c_ns = element._doc._findOrBuildNodeNs(element._c_node, _xcstr(ns), NULL, 1)             # <<<<<<<<<<<<<<
@@ -25881,12 +25808,12 @@ static int __pyx_f_4lxml_5etree__setAttributeValue(struct LxmlElement *__pyx_v_e
  *     return 0
  */
   /*else*/ {
-    __pyx_t_8 = __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_8 == ((xmlNs *)NULL))) __PYX_ERR(5, 603, __pyx_L1_error)
+    __pyx_t_8 = __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_8 == ((xmlNs *)NULL))) __PYX_ERR(5, 598, __pyx_L1_error)
     __pyx_v_c_ns = __pyx_t_8;
   }
   __pyx_L8:;
 
-  /* "src/lxml/apihelpers.pxi":604
+  /* "src/lxml/apihelpers.pxi":599
  *     else:
  *         c_ns = element._doc._findOrBuildNodeNs(element._c_node, _xcstr(ns), NULL, 1)
  *     tree.xmlSetNsProp(element._c_node, c_ns, c_tag, c_value)             # <<<<<<<<<<<<<<
@@ -25895,7 +25822,7 @@ static int __pyx_f_4lxml_5etree__setAttributeValue(struct LxmlElement *__pyx_v_e
  */
   (void)(xmlSetNsProp(__pyx_v_element->_c_node, __pyx_v_c_ns, __pyx_v_c_tag, __pyx_v_c_value));
 
-  /* "src/lxml/apihelpers.pxi":605
+  /* "src/lxml/apihelpers.pxi":600
  *         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             # <<<<<<<<<<<<<<
@@ -25905,7 +25832,7 @@ static int __pyx_f_4lxml_5etree__setAttributeValue(struct LxmlElement *__pyx_v_e
   __pyx_r = 0;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":584
+  /* "src/lxml/apihelpers.pxi":579
  *     return _getNodeAttributeValue(element._c_node, key, default)
  * 
  * cdef int _setAttributeValue(_Element element, key, value) except -1:             # <<<<<<<<<<<<<<
@@ -25928,7 +25855,7 @@ static int __pyx_f_4lxml_5etree__setAttributeValue(struct LxmlElement *__pyx_v_e
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":607
+/* "src/lxml/apihelpers.pxi":602
  *     return 0
  * 
  * cdef int _delAttribute(_Element element, key) except -1:             # <<<<<<<<<<<<<<
@@ -25949,14 +25876,14 @@ static int __pyx_f_4lxml_5etree__delAttribute(struct LxmlElement *__pyx_v_elemen
   int __pyx_t_5;
   __Pyx_RefNannySetupContext("_delAttribute", 0);
 
-  /* "src/lxml/apihelpers.pxi":608
+  /* "src/lxml/apihelpers.pxi":603
  * 
  * 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_ERR(5, 608, __pyx_L1_error)
+  __pyx_t_1 = __pyx_f_4lxml_5etree__getNsTag(__pyx_v_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 603, __pyx_L1_error)
   __Pyx_GOTREF(__pyx_t_1);
   if (likely(__pyx_t_1 != Py_None)) {
     PyObject* sequence = __pyx_t_1;
@@ -25964,7 +25891,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_ERR(5, 608, __pyx_L1_error)
+      __PYX_ERR(5, 603, __pyx_L1_error)
     }
     #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
     __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); 
@@ -25972,21 +25899,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_ERR(5, 608, __pyx_L1_error)
+    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 603, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_2);
-    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 608, __pyx_L1_error)
+    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 603, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_3);
     #endif
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   } else {
-    __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(5, 608, __pyx_L1_error)
+    __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(5, 603, __pyx_L1_error)
   }
   __pyx_v_ns = __pyx_t_2;
   __pyx_t_2 = 0;
   __pyx_v_tag = __pyx_t_3;
   __pyx_t_3 = 0;
 
-  /* "src/lxml/apihelpers.pxi":609
+  /* "src/lxml/apihelpers.pxi":604
  * cdef int _delAttribute(_Element element, key) except -1:
  *     ns, tag = _getNsTag(key)
  *     c_href = <const_xmlChar*>NULL if ns is None else _xcstr(ns)             # <<<<<<<<<<<<<<
@@ -26001,7 +25928,7 @@ static int __pyx_f_4lxml_5etree__delAttribute(struct LxmlElement *__pyx_v_elemen
   }
   __pyx_v_c_href = __pyx_t_4;
 
-  /* "src/lxml/apihelpers.pxi":610
+  /* "src/lxml/apihelpers.pxi":605
  *     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)):             # <<<<<<<<<<<<<<
@@ -26011,7 +25938,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 (unlikely(__pyx_t_5)) {
 
-    /* "src/lxml/apihelpers.pxi":611
+    /* "src/lxml/apihelpers.pxi":606
  *     c_href = <const_xmlChar*>NULL if ns is None else _xcstr(ns)
  *     if _delAttributeFromNsName(element._c_node, c_href, _xcstr(tag)):
  *         raise KeyError, key             # <<<<<<<<<<<<<<
@@ -26019,9 +25946,9 @@ static int __pyx_f_4lxml_5etree__delAttribute(struct LxmlElement *__pyx_v_elemen
  * 
  */
     __Pyx_Raise(__pyx_builtin_KeyError, __pyx_v_key, 0, 0);
-    __PYX_ERR(5, 611, __pyx_L1_error)
+    __PYX_ERR(5, 606, __pyx_L1_error)
 
-    /* "src/lxml/apihelpers.pxi":610
+    /* "src/lxml/apihelpers.pxi":605
  *     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)):             # <<<<<<<<<<<<<<
@@ -26030,7 +25957,7 @@ static int __pyx_f_4lxml_5etree__delAttribute(struct LxmlElement *__pyx_v_elemen
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":612
+  /* "src/lxml/apihelpers.pxi":607
  *     if _delAttributeFromNsName(element._c_node, c_href, _xcstr(tag)):
  *         raise KeyError, key
  *     return 0             # <<<<<<<<<<<<<<
@@ -26040,7 +25967,7 @@ static int __pyx_f_4lxml_5etree__delAttribute(struct LxmlElement *__pyx_v_elemen
   __pyx_r = 0;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":607
+  /* "src/lxml/apihelpers.pxi":602
  *     return 0
  * 
  * cdef int _delAttribute(_Element element, key) except -1:             # <<<<<<<<<<<<<<
@@ -26062,7 +25989,7 @@ static int __pyx_f_4lxml_5etree__delAttribute(struct LxmlElement *__pyx_v_elemen
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":614
+/* "src/lxml/apihelpers.pxi":609
  *     return 0
  * 
  * cdef int _delAttributeFromNsName(xmlNode* c_node, const_xmlChar* c_href, const_xmlChar* c_name):             # <<<<<<<<<<<<<<
@@ -26077,7 +26004,7 @@ static int __pyx_f_4lxml_5etree__delAttributeFromNsName(xmlNode *__pyx_v_c_node,
   int __pyx_t_1;
   __Pyx_RefNannySetupContext("_delAttributeFromNsName", 0);
 
-  /* "src/lxml/apihelpers.pxi":615
+  /* "src/lxml/apihelpers.pxi":610
  * 
  * cdef int _delAttributeFromNsName(xmlNode* c_node, const_xmlChar* c_href, const_xmlChar* c_name):
  *     c_attr = tree.xmlHasNsProp(c_node, c_name, c_href)             # <<<<<<<<<<<<<<
@@ -26086,7 +26013,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);
 
-  /* "src/lxml/apihelpers.pxi":616
+  /* "src/lxml/apihelpers.pxi":611
  * 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:             # <<<<<<<<<<<<<<
@@ -26096,7 +26023,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) {
 
-    /* "src/lxml/apihelpers.pxi":618
+    /* "src/lxml/apihelpers.pxi":613
  *     if c_attr is NULL:
  *         # XXX free namespace that is not in use..?
  *         return -1             # <<<<<<<<<<<<<<
@@ -26106,7 +26033,7 @@ static int __pyx_f_4lxml_5etree__delAttributeFromNsName(xmlNode *__pyx_v_c_node,
     __pyx_r = -1;
     goto __pyx_L0;
 
-    /* "src/lxml/apihelpers.pxi":616
+    /* "src/lxml/apihelpers.pxi":611
  * 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:             # <<<<<<<<<<<<<<
@@ -26115,7 +26042,7 @@ static int __pyx_f_4lxml_5etree__delAttributeFromNsName(xmlNode *__pyx_v_c_node,
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":619
+  /* "src/lxml/apihelpers.pxi":614
  *         # XXX free namespace that is not in use..?
  *         return -1
  *     tree.xmlRemoveProp(c_attr)             # <<<<<<<<<<<<<<
@@ -26124,7 +26051,7 @@ static int __pyx_f_4lxml_5etree__delAttributeFromNsName(xmlNode *__pyx_v_c_node,
  */
   (void)(xmlRemoveProp(__pyx_v_c_attr));
 
-  /* "src/lxml/apihelpers.pxi":620
+  /* "src/lxml/apihelpers.pxi":615
  *         return -1
  *     tree.xmlRemoveProp(c_attr)
  *     return 0             # <<<<<<<<<<<<<<
@@ -26134,7 +26061,7 @@ static int __pyx_f_4lxml_5etree__delAttributeFromNsName(xmlNode *__pyx_v_c_node,
   __pyx_r = 0;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":614
+  /* "src/lxml/apihelpers.pxi":609
  *     return 0
  * 
  * cdef int _delAttributeFromNsName(xmlNode* c_node, const_xmlChar* c_href, const_xmlChar* c_name):             # <<<<<<<<<<<<<<
@@ -26148,7 +26075,7 @@ static int __pyx_f_4lxml_5etree__delAttributeFromNsName(xmlNode *__pyx_v_c_node,
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":622
+/* "src/lxml/apihelpers.pxi":617
  *     return 0
  * 
  * cdef list _collectAttributes(xmlNode* c_node, int collecttype):             # <<<<<<<<<<<<<<
@@ -26170,7 +26097,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectAttributes(xmlNode *__pyx_v_c_node
   PyObject *__pyx_t_5 = NULL;
   __Pyx_RefNannySetupContext("_collectAttributes", 0);
 
-  /* "src/lxml/apihelpers.pxi":627
+  /* "src/lxml/apihelpers.pxi":622
  *     """
  *     cdef Py_ssize_t count
  *     c_attr = c_node.properties             # <<<<<<<<<<<<<<
@@ -26180,7 +26107,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;
 
-  /* "src/lxml/apihelpers.pxi":628
+  /* "src/lxml/apihelpers.pxi":623
  *     cdef Py_ssize_t count
  *     c_attr = c_node.properties
  *     count = 0             # <<<<<<<<<<<<<<
@@ -26189,7 +26116,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectAttributes(xmlNode *__pyx_v_c_node
  */
   __pyx_v_count = 0;
 
-  /* "src/lxml/apihelpers.pxi":629
+  /* "src/lxml/apihelpers.pxi":624
  *     c_attr = c_node.properties
  *     count = 0
  *     while c_attr is not NULL:             # <<<<<<<<<<<<<<
@@ -26200,7 +26127,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;
 
-    /* "src/lxml/apihelpers.pxi":630
+    /* "src/lxml/apihelpers.pxi":625
  *     count = 0
  *     while c_attr is not NULL:
  *         if c_attr.type == tree.XML_ATTRIBUTE_NODE:             # <<<<<<<<<<<<<<
@@ -26210,7 +26137,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) {
 
-      /* "src/lxml/apihelpers.pxi":631
+      /* "src/lxml/apihelpers.pxi":626
  *     while c_attr is not NULL:
  *         if c_attr.type == tree.XML_ATTRIBUTE_NODE:
  *             count += 1             # <<<<<<<<<<<<<<
@@ -26219,7 +26146,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectAttributes(xmlNode *__pyx_v_c_node
  */
       __pyx_v_count = (__pyx_v_count + 1);
 
-      /* "src/lxml/apihelpers.pxi":630
+      /* "src/lxml/apihelpers.pxi":625
  *     count = 0
  *     while c_attr is not NULL:
  *         if c_attr.type == tree.XML_ATTRIBUTE_NODE:             # <<<<<<<<<<<<<<
@@ -26228,7 +26155,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectAttributes(xmlNode *__pyx_v_c_node
  */
     }
 
-    /* "src/lxml/apihelpers.pxi":632
+    /* "src/lxml/apihelpers.pxi":627
  *         if c_attr.type == tree.XML_ATTRIBUTE_NODE:
  *             count += 1
  *         c_attr = c_attr.next             # <<<<<<<<<<<<<<
@@ -26239,7 +26166,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectAttributes(xmlNode *__pyx_v_c_node
     __pyx_v_c_attr = __pyx_t_1;
   }
 
-  /* "src/lxml/apihelpers.pxi":634
+  /* "src/lxml/apihelpers.pxi":629
  *         c_attr = c_attr.next
  * 
  *     if not count:             # <<<<<<<<<<<<<<
@@ -26249,7 +26176,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) {
 
-    /* "src/lxml/apihelpers.pxi":635
+    /* "src/lxml/apihelpers.pxi":630
  * 
  *     if not count:
  *         return []             # <<<<<<<<<<<<<<
@@ -26257,13 +26184,13 @@ 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_ERR(5, 635, __pyx_L1_error)
+    __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 630, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_3);
     __pyx_r = ((PyObject*)__pyx_t_3);
     __pyx_t_3 = 0;
     goto __pyx_L0;
 
-    /* "src/lxml/apihelpers.pxi":634
+    /* "src/lxml/apihelpers.pxi":629
  *         c_attr = c_attr.next
  * 
  *     if not count:             # <<<<<<<<<<<<<<
@@ -26272,14 +26199,14 @@ static PyObject *__pyx_f_4lxml_5etree__collectAttributes(xmlNode *__pyx_v_c_node
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":637
+  /* "src/lxml/apihelpers.pxi":632
  *         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_ERR(5, 637, __pyx_L1_error)
+  __pyx_t_3 = PyList_New(1 * ((__pyx_v_count<0) ? 0:__pyx_v_count)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 632, __pyx_L1_error)
   __Pyx_GOTREF(__pyx_t_3);
   { Py_ssize_t __pyx_temp;
     for (__pyx_temp=0; __pyx_temp < __pyx_v_count; __pyx_temp++) {
@@ -26291,7 +26218,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectAttributes(xmlNode *__pyx_v_c_node
   __pyx_v_attributes = ((PyObject*)__pyx_t_3);
   __pyx_t_3 = 0;
 
-  /* "src/lxml/apihelpers.pxi":638
+  /* "src/lxml/apihelpers.pxi":633
  * 
  *     attributes = [None] * count
  *     c_attr = c_node.properties             # <<<<<<<<<<<<<<
@@ -26301,7 +26228,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;
 
-  /* "src/lxml/apihelpers.pxi":639
+  /* "src/lxml/apihelpers.pxi":634
  *     attributes = [None] * count
  *     c_attr = c_node.properties
  *     count = 0             # <<<<<<<<<<<<<<
@@ -26310,7 +26237,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectAttributes(xmlNode *__pyx_v_c_node
  */
   __pyx_v_count = 0;
 
-  /* "src/lxml/apihelpers.pxi":640
+  /* "src/lxml/apihelpers.pxi":635
  *     c_attr = c_node.properties
  *     count = 0
  *     while c_attr is not NULL:             # <<<<<<<<<<<<<<
@@ -26321,7 +26248,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;
 
-    /* "src/lxml/apihelpers.pxi":641
+    /* "src/lxml/apihelpers.pxi":636
  *     count = 0
  *     while c_attr is not NULL:
  *         if c_attr.type == tree.XML_ATTRIBUTE_NODE:             # <<<<<<<<<<<<<<
@@ -26331,7 +26258,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) {
 
-      /* "src/lxml/apihelpers.pxi":642
+      /* "src/lxml/apihelpers.pxi":637
  *     while c_attr is not NULL:
  *         if c_attr.type == tree.XML_ATTRIBUTE_NODE:
  *             if collecttype == 1:             # <<<<<<<<<<<<<<
@@ -26341,19 +26268,19 @@ static PyObject *__pyx_f_4lxml_5etree__collectAttributes(xmlNode *__pyx_v_c_node
       switch (__pyx_v_collecttype) {
         case 1:
 
-        /* "src/lxml/apihelpers.pxi":643
+        /* "src/lxml/apihelpers.pxi":638
  *         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_ERR(5, 643, __pyx_L1_error)
+        __pyx_t_3 = __pyx_f_4lxml_5etree__namespacedName(((xmlNode *)__pyx_v_c_attr)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 638, __pyx_L1_error)
         __Pyx_GOTREF(__pyx_t_3);
         __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_3);
         __pyx_t_3 = 0;
 
-        /* "src/lxml/apihelpers.pxi":642
+        /* "src/lxml/apihelpers.pxi":637
  *     while c_attr is not NULL:
  *         if c_attr.type == tree.XML_ATTRIBUTE_NODE:
  *             if collecttype == 1:             # <<<<<<<<<<<<<<
@@ -26363,19 +26290,19 @@ static PyObject *__pyx_f_4lxml_5etree__collectAttributes(xmlNode *__pyx_v_c_node
         break;
         case 2:
 
-        /* "src/lxml/apihelpers.pxi":645
+        /* "src/lxml/apihelpers.pxi":640
  *                 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_ERR(5, 645, __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_ERR(5, 640, __pyx_L1_error)
         __Pyx_GOTREF(__pyx_t_3);
         __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_3);
         __pyx_t_3 = 0;
 
-        /* "src/lxml/apihelpers.pxi":644
+        /* "src/lxml/apihelpers.pxi":639
  *             if collecttype == 1:
  *                 item = _namespacedName(<xmlNode*>c_attr)
  *             elif collecttype == 2:             # <<<<<<<<<<<<<<
@@ -26385,34 +26312,34 @@ static PyObject *__pyx_f_4lxml_5etree__collectAttributes(xmlNode *__pyx_v_c_node
         break;
         default:
 
-        /* "src/lxml/apihelpers.pxi":647
+        /* "src/lxml/apihelpers.pxi":642
  *                 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_ERR(5, 647, __pyx_L1_error)
+        __pyx_t_3 = __pyx_f_4lxml_5etree__namespacedName(((xmlNode *)__pyx_v_c_attr)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 642, __pyx_L1_error)
         __Pyx_GOTREF(__pyx_t_3);
 
-        /* "src/lxml/apihelpers.pxi":648
+        /* "src/lxml/apihelpers.pxi":643
  *             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_ERR(5, 648, __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_ERR(5, 643, __pyx_L1_error)
         __Pyx_GOTREF(__pyx_t_4);
 
-        /* "src/lxml/apihelpers.pxi":647
+        /* "src/lxml/apihelpers.pxi":642
  *                 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_ERR(5, 647, __pyx_L1_error)
+        __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 642, __pyx_L1_error)
         __Pyx_GOTREF(__pyx_t_5);
         __Pyx_GIVEREF(__pyx_t_3);
         PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3);
@@ -26425,16 +26352,16 @@ static PyObject *__pyx_f_4lxml_5etree__collectAttributes(xmlNode *__pyx_v_c_node
         break;
       }
 
-      /* "src/lxml/apihelpers.pxi":649
+      /* "src/lxml/apihelpers.pxi":644
  *                 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_ERR(5, 649, __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_ERR(5, 644, __pyx_L1_error)
 
-      /* "src/lxml/apihelpers.pxi":650
+      /* "src/lxml/apihelpers.pxi":645
  *                         _attributeValue(c_node, c_attr))
  *             attributes[count] = item
  *             count += 1             # <<<<<<<<<<<<<<
@@ -26443,7 +26370,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectAttributes(xmlNode *__pyx_v_c_node
  */
       __pyx_v_count = (__pyx_v_count + 1);
 
-      /* "src/lxml/apihelpers.pxi":641
+      /* "src/lxml/apihelpers.pxi":636
  *     count = 0
  *     while c_attr is not NULL:
  *         if c_attr.type == tree.XML_ATTRIBUTE_NODE:             # <<<<<<<<<<<<<<
@@ -26452,7 +26379,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectAttributes(xmlNode *__pyx_v_c_node
  */
     }
 
-    /* "src/lxml/apihelpers.pxi":651
+    /* "src/lxml/apihelpers.pxi":646
  *             attributes[count] = item
  *             count += 1
  *         c_attr = c_attr.next             # <<<<<<<<<<<<<<
@@ -26463,7 +26390,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectAttributes(xmlNode *__pyx_v_c_node
     __pyx_v_c_attr = __pyx_t_1;
   }
 
-  /* "src/lxml/apihelpers.pxi":652
+  /* "src/lxml/apihelpers.pxi":647
  *             count += 1
  *         c_attr = c_attr.next
  *     return attributes             # <<<<<<<<<<<<<<
@@ -26475,7 +26402,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectAttributes(xmlNode *__pyx_v_c_node
   __pyx_r = __pyx_v_attributes;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":622
+  /* "src/lxml/apihelpers.pxi":617
  *     return 0
  * 
  * cdef list _collectAttributes(xmlNode* c_node, int collecttype):             # <<<<<<<<<<<<<<
@@ -26498,7 +26425,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectAttributes(xmlNode *__pyx_v_c_node
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":660
+/* "src/lxml/apihelpers.pxi":655
  * cdef object __HAS_XML_ENCODING = __RE_XML_ENCODING.match
  * 
  * cdef object _stripEncodingDeclaration(object xml_string):             # <<<<<<<<<<<<<<
@@ -26516,7 +26443,7 @@ static PyObject *__pyx_f_4lxml_5etree__stripEncodingDeclaration(PyObject *__pyx_
   PyObject *__pyx_t_5 = NULL;
   __Pyx_RefNannySetupContext("_stripEncodingDeclaration", 0);
 
-  /* "src/lxml/apihelpers.pxi":662
+  /* "src/lxml/apihelpers.pxi":657
  * 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)             # <<<<<<<<<<<<<<
@@ -26540,7 +26467,7 @@ static PyObject *__pyx_f_4lxml_5etree__stripEncodingDeclaration(PyObject *__pyx_
   #if CYTHON_FAST_PYCALL
   if (PyFunction_Check(__pyx_t_2)) {
     PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_kp_u_g_1_g_2, __pyx_v_xml_string};
-    __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 662, __pyx_L1_error)
+    __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 657, __pyx_L1_error)
     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
     __Pyx_GOTREF(__pyx_t_1);
   } else
@@ -26548,13 +26475,13 @@ static PyObject *__pyx_f_4lxml_5etree__stripEncodingDeclaration(PyObject *__pyx_
   #if CYTHON_FAST_PYCCALL
   if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
     PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_kp_u_g_1_g_2, __pyx_v_xml_string};
-    __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 662, __pyx_L1_error)
+    __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 657, __pyx_L1_error)
     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
     __Pyx_GOTREF(__pyx_t_1);
   } else
   #endif
   {
-    __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 662, __pyx_L1_error)
+    __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 657, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_5);
     if (__pyx_t_3) {
       __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL;
@@ -26565,7 +26492,7 @@ static PyObject *__pyx_f_4lxml_5etree__stripEncodingDeclaration(PyObject *__pyx_
     __Pyx_INCREF(__pyx_v_xml_string);
     __Pyx_GIVEREF(__pyx_v_xml_string);
     PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_v_xml_string);
-    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 662, __pyx_L1_error)
+    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 657, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_1);
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   }
@@ -26574,7 +26501,7 @@ static PyObject *__pyx_f_4lxml_5etree__stripEncodingDeclaration(PyObject *__pyx_
   __pyx_t_1 = 0;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":660
+  /* "src/lxml/apihelpers.pxi":655
  * cdef object __HAS_XML_ENCODING = __RE_XML_ENCODING.match
  * 
  * cdef object _stripEncodingDeclaration(object xml_string):             # <<<<<<<<<<<<<<
@@ -26596,7 +26523,7 @@ static PyObject *__pyx_f_4lxml_5etree__stripEncodingDeclaration(PyObject *__pyx_
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":664
+/* "src/lxml/apihelpers.pxi":659
  *     return __REPLACE_XML_ENCODING(ur'\g<1>\g<2>', xml_string)
  * 
  * cdef bint _hasEncodingDeclaration(object xml_string) except -1:             # <<<<<<<<<<<<<<
@@ -26613,7 +26540,7 @@ static int __pyx_f_4lxml_5etree__hasEncodingDeclaration(PyObject *__pyx_v_xml_st
   int __pyx_t_4;
   __Pyx_RefNannySetupContext("_hasEncodingDeclaration", 0);
 
-  /* "src/lxml/apihelpers.pxi":666
+  /* "src/lxml/apihelpers.pxi":661
  * 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             # <<<<<<<<<<<<<<
@@ -26633,7 +26560,7 @@ static int __pyx_f_4lxml_5etree__hasEncodingDeclaration(PyObject *__pyx_v_xml_st
   }
   __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_xml_string) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_xml_string);
   __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
-  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 666, __pyx_L1_error)
+  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 661, __pyx_L1_error)
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   __pyx_t_4 = (__pyx_t_1 != Py_None);
@@ -26641,7 +26568,7 @@ static int __pyx_f_4lxml_5etree__hasEncodingDeclaration(PyObject *__pyx_v_xml_st
   __pyx_r = __pyx_t_4;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":664
+  /* "src/lxml/apihelpers.pxi":659
  *     return __REPLACE_XML_ENCODING(ur'\g<1>\g<2>', xml_string)
  * 
  * cdef bint _hasEncodingDeclaration(object xml_string) except -1:             # <<<<<<<<<<<<<<
@@ -26661,7 +26588,7 @@ static int __pyx_f_4lxml_5etree__hasEncodingDeclaration(PyObject *__pyx_v_xml_st
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":668
+/* "src/lxml/apihelpers.pxi":663
  *     return __HAS_XML_ENCODING(xml_string) is not None
  * 
  * cdef inline bint _hasText(xmlNode* c_node):             # <<<<<<<<<<<<<<
@@ -26676,7 +26603,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__hasText(xmlNode *__pyx_v_c_node)
   int __pyx_t_2;
   __Pyx_RefNannySetupContext("_hasText", 0);
 
-  /* "src/lxml/apihelpers.pxi":669
+  /* "src/lxml/apihelpers.pxi":664
  * 
  * cdef inline bint _hasText(xmlNode* c_node):
  *     return c_node is not NULL and _textNodeOrSkip(c_node.children) is not NULL             # <<<<<<<<<<<<<<
@@ -26695,7 +26622,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__hasText(xmlNode *__pyx_v_c_node)
   __pyx_r = __pyx_t_1;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":668
+  /* "src/lxml/apihelpers.pxi":663
  *     return __HAS_XML_ENCODING(xml_string) is not None
  * 
  * cdef inline bint _hasText(xmlNode* c_node):             # <<<<<<<<<<<<<<
@@ -26709,7 +26636,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__hasText(xmlNode *__pyx_v_c_node)
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":671
+/* "src/lxml/apihelpers.pxi":666
  *     return c_node is not NULL and _textNodeOrSkip(c_node.children) is not NULL
  * 
  * cdef inline bint _hasTail(xmlNode* c_node):             # <<<<<<<<<<<<<<
@@ -26724,7 +26651,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__hasTail(xmlNode *__pyx_v_c_node)
   int __pyx_t_2;
   __Pyx_RefNannySetupContext("_hasTail", 0);
 
-  /* "src/lxml/apihelpers.pxi":672
+  /* "src/lxml/apihelpers.pxi":667
  * 
  * cdef inline bint _hasTail(xmlNode* c_node):
  *     return c_node is not NULL and _textNodeOrSkip(c_node.next) is not NULL             # <<<<<<<<<<<<<<
@@ -26743,7 +26670,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__hasTail(xmlNode *__pyx_v_c_node)
   __pyx_r = __pyx_t_1;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":671
+  /* "src/lxml/apihelpers.pxi":666
  *     return c_node is not NULL and _textNodeOrSkip(c_node.children) is not NULL
  * 
  * cdef inline bint _hasTail(xmlNode* c_node):             # <<<<<<<<<<<<<<
@@ -26757,7 +26684,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__hasTail(xmlNode *__pyx_v_c_node)
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":674
+/* "src/lxml/apihelpers.pxi":669
  *     return c_node is not NULL and _textNodeOrSkip(c_node.next) is not NULL
  * 
  * cdef _collectText(xmlNode* c_node):             # <<<<<<<<<<<<<<
@@ -26780,7 +26707,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectText(xmlNode *__pyx_v_c_node) {
   unsigned char *__pyx_t_6;
   __Pyx_RefNannySetupContext("_collectText", 0);
 
-  /* "src/lxml/apihelpers.pxi":685
+  /* "src/lxml/apihelpers.pxi":680
  *     cdef xmlNode* c_node_cur
  *     # check for multiple text nodes
  *     scount = 0             # <<<<<<<<<<<<<<
@@ -26789,7 +26716,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectText(xmlNode *__pyx_v_c_node) {
  */
   __pyx_v_scount = 0;
 
-  /* "src/lxml/apihelpers.pxi":686
+  /* "src/lxml/apihelpers.pxi":681
  *     # check for multiple text nodes
  *     scount = 0
  *     c_text = NULL             # <<<<<<<<<<<<<<
@@ -26798,7 +26725,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectText(xmlNode *__pyx_v_c_node) {
  */
   __pyx_v_c_text = NULL;
 
-  /* "src/lxml/apihelpers.pxi":687
+  /* "src/lxml/apihelpers.pxi":682
  *     scount = 0
  *     c_text = NULL
  *     c_node_cur = c_node = _textNodeOrSkip(c_node)             # <<<<<<<<<<<<<<
@@ -26809,7 +26736,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;
 
-  /* "src/lxml/apihelpers.pxi":688
+  /* "src/lxml/apihelpers.pxi":683
  *     c_text = NULL
  *     c_node_cur = c_node = _textNodeOrSkip(c_node)
  *     while c_node_cur is not NULL:             # <<<<<<<<<<<<<<
@@ -26820,7 +26747,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;
 
-    /* "src/lxml/apihelpers.pxi":689
+    /* "src/lxml/apihelpers.pxi":684
  *     c_node_cur = c_node = _textNodeOrSkip(c_node)
  *     while c_node_cur is not NULL:
  *         if c_node_cur.content[0] != c'\0':             # <<<<<<<<<<<<<<
@@ -26830,7 +26757,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) {
 
-      /* "src/lxml/apihelpers.pxi":690
+      /* "src/lxml/apihelpers.pxi":685
  *     while c_node_cur is not NULL:
  *         if c_node_cur.content[0] != c'\0':
  *             c_text = c_node_cur.content             # <<<<<<<<<<<<<<
@@ -26840,7 +26767,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectText(xmlNode *__pyx_v_c_node) {
       __pyx_t_3 = __pyx_v_c_node_cur->content;
       __pyx_v_c_text = __pyx_t_3;
 
-      /* "src/lxml/apihelpers.pxi":689
+      /* "src/lxml/apihelpers.pxi":684
  *     c_node_cur = c_node = _textNodeOrSkip(c_node)
  *     while c_node_cur is not NULL:
  *         if c_node_cur.content[0] != c'\0':             # <<<<<<<<<<<<<<
@@ -26849,7 +26776,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectText(xmlNode *__pyx_v_c_node) {
  */
     }
 
-    /* "src/lxml/apihelpers.pxi":691
+    /* "src/lxml/apihelpers.pxi":686
  *         if c_node_cur.content[0] != c'\0':
  *             c_text = c_node_cur.content
  *         scount += 1             # <<<<<<<<<<<<<<
@@ -26858,7 +26785,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectText(xmlNode *__pyx_v_c_node) {
  */
     __pyx_v_scount = (__pyx_v_scount + 1);
 
-    /* "src/lxml/apihelpers.pxi":692
+    /* "src/lxml/apihelpers.pxi":687
  *             c_text = c_node_cur.content
  *         scount += 1
  *         c_node_cur = _textNodeOrSkip(c_node_cur.next)             # <<<<<<<<<<<<<<
@@ -26868,7 +26795,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);
   }
 
-  /* "src/lxml/apihelpers.pxi":695
+  /* "src/lxml/apihelpers.pxi":690
  * 
  *     # handle two most common cases first
  *     if c_text is NULL:             # <<<<<<<<<<<<<<
@@ -26878,7 +26805,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) {
 
-    /* "src/lxml/apihelpers.pxi":696
+    /* "src/lxml/apihelpers.pxi":691
  *     # handle two most common cases first
  *     if c_text is NULL:
  *         return '' if scount > 0 else None             # <<<<<<<<<<<<<<
@@ -26897,7 +26824,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectText(xmlNode *__pyx_v_c_node) {
     __pyx_t_4 = 0;
     goto __pyx_L0;
 
-    /* "src/lxml/apihelpers.pxi":695
+    /* "src/lxml/apihelpers.pxi":690
  * 
  *     # handle two most common cases first
  *     if c_text is NULL:             # <<<<<<<<<<<<<<
@@ -26906,7 +26833,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectText(xmlNode *__pyx_v_c_node) {
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":697
+  /* "src/lxml/apihelpers.pxi":692
  *     if c_text is NULL:
  *         return '' if scount > 0 else None
  *     if scount == 1:             # <<<<<<<<<<<<<<
@@ -26916,7 +26843,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) {
 
-    /* "src/lxml/apihelpers.pxi":698
+    /* "src/lxml/apihelpers.pxi":693
  *         return '' if scount > 0 else None
  *     if scount == 1:
  *         return funicode(c_text)             # <<<<<<<<<<<<<<
@@ -26924,13 +26851,13 @@ 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_ERR(5, 698, __pyx_L1_error)
+    __pyx_t_4 = __pyx_f_4lxml_5etree_funicode(__pyx_v_c_text); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 693, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_4);
     __pyx_r = __pyx_t_4;
     __pyx_t_4 = 0;
     goto __pyx_L0;
 
-    /* "src/lxml/apihelpers.pxi":697
+    /* "src/lxml/apihelpers.pxi":692
  *     if c_text is NULL:
  *         return '' if scount > 0 else None
  *     if scount == 1:             # <<<<<<<<<<<<<<
@@ -26939,7 +26866,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectText(xmlNode *__pyx_v_c_node) {
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":701
+  /* "src/lxml/apihelpers.pxi":696
  * 
  *     # the rest is not performance critical anymore
  *     result = b''             # <<<<<<<<<<<<<<
@@ -26949,7 +26876,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectText(xmlNode *__pyx_v_c_node) {
   __Pyx_INCREF(__pyx_kp_b__12);
   __pyx_v_result = __pyx_kp_b__12;
 
-  /* "src/lxml/apihelpers.pxi":702
+  /* "src/lxml/apihelpers.pxi":697
  *     # the rest is not performance critical anymore
  *     result = b''
  *     while c_node is not NULL:             # <<<<<<<<<<<<<<
@@ -26960,22 +26887,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;
 
-    /* "src/lxml/apihelpers.pxi":703
+    /* "src/lxml/apihelpers.pxi":698
  *     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_FromCString(((unsigned char *)__pyx_v_c_node->content)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 703, __pyx_L1_error)
+    __pyx_t_4 = __Pyx_PyBytes_FromCString(((unsigned char *)__pyx_v_c_node->content)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 698, __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_ERR(5, 703, __pyx_L1_error)
+    __pyx_t_5 = PyNumber_InPlaceAdd(__pyx_v_result, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 698, __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;
 
-    /* "src/lxml/apihelpers.pxi":704
+    /* "src/lxml/apihelpers.pxi":699
  *     while c_node is not NULL:
  *         result += <unsigned char*>c_node.content
  *         c_node = _textNodeOrSkip(c_node.next)             # <<<<<<<<<<<<<<
@@ -26985,7 +26912,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);
   }
 
-  /* "src/lxml/apihelpers.pxi":705
+  /* "src/lxml/apihelpers.pxi":700
  *         result += <unsigned char*>c_node.content
  *         c_node = _textNodeOrSkip(c_node.next)
  *     return funicode(<const_xmlChar*><unsigned char*>result)             # <<<<<<<<<<<<<<
@@ -26995,16 +26922,16 @@ static PyObject *__pyx_f_4lxml_5etree__collectText(xmlNode *__pyx_v_c_node) {
   __Pyx_XDECREF(__pyx_r);
   if (unlikely(__pyx_v_result == Py_None)) {
     PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found");
-    __PYX_ERR(5, 705, __pyx_L1_error)
+    __PYX_ERR(5, 700, __pyx_L1_error)
   }
-  __pyx_t_6 = __Pyx_PyBytes_AsWritableUString(__pyx_v_result); if (unlikely((!__pyx_t_6) && PyErr_Occurred())) __PYX_ERR(5, 705, __pyx_L1_error)
-  __pyx_t_5 = __pyx_f_4lxml_5etree_funicode(((const xmlChar *)((unsigned char *)__pyx_t_6))); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 705, __pyx_L1_error)
+  __pyx_t_6 = __Pyx_PyBytes_AsWritableUString(__pyx_v_result); if (unlikely((!__pyx_t_6) && PyErr_Occurred())) __PYX_ERR(5, 700, __pyx_L1_error)
+  __pyx_t_5 = __pyx_f_4lxml_5etree_funicode(((const xmlChar *)((unsigned char *)__pyx_t_6))); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 700, __pyx_L1_error)
   __Pyx_GOTREF(__pyx_t_5);
   __pyx_r = __pyx_t_5;
   __pyx_t_5 = 0;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":674
+  /* "src/lxml/apihelpers.pxi":669
  *     return c_node is not NULL and _textNodeOrSkip(c_node.next) is not NULL
  * 
  * cdef _collectText(xmlNode* c_node):             # <<<<<<<<<<<<<<
@@ -27025,7 +26952,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectText(xmlNode *__pyx_v_c_node) {
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":707
+/* "src/lxml/apihelpers.pxi":702
  *     return funicode(<const_xmlChar*><unsigned char*>result)
  * 
  * cdef void _removeText(xmlNode* c_node):             # <<<<<<<<<<<<<<
@@ -27039,7 +26966,7 @@ static void __pyx_f_4lxml_5etree__removeText(xmlNode *__pyx_v_c_node) {
   int __pyx_t_1;
   __Pyx_RefNannySetupContext("_removeText", 0);
 
-  /* "src/lxml/apihelpers.pxi":713
+  /* "src/lxml/apihelpers.pxi":708
  *     """
  *     cdef xmlNode* c_next
  *     c_node = _textNodeOrSkip(c_node)             # <<<<<<<<<<<<<<
@@ -27048,7 +26975,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);
 
-  /* "src/lxml/apihelpers.pxi":714
+  /* "src/lxml/apihelpers.pxi":709
  *     cdef xmlNode* c_next
  *     c_node = _textNodeOrSkip(c_node)
  *     while c_node is not NULL:             # <<<<<<<<<<<<<<
@@ -27059,7 +26986,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;
 
-    /* "src/lxml/apihelpers.pxi":715
+    /* "src/lxml/apihelpers.pxi":710
  *     c_node = _textNodeOrSkip(c_node)
  *     while c_node is not NULL:
  *         c_next = _textNodeOrSkip(c_node.next)             # <<<<<<<<<<<<<<
@@ -27068,7 +26995,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);
 
-    /* "src/lxml/apihelpers.pxi":716
+    /* "src/lxml/apihelpers.pxi":711
  *     while c_node is not NULL:
  *         c_next = _textNodeOrSkip(c_node.next)
  *         tree.xmlUnlinkNode(c_node)             # <<<<<<<<<<<<<<
@@ -27077,7 +27004,7 @@ static void __pyx_f_4lxml_5etree__removeText(xmlNode *__pyx_v_c_node) {
  */
     xmlUnlinkNode(__pyx_v_c_node);
 
-    /* "src/lxml/apihelpers.pxi":717
+    /* "src/lxml/apihelpers.pxi":712
  *         c_next = _textNodeOrSkip(c_node.next)
  *         tree.xmlUnlinkNode(c_node)
  *         tree.xmlFreeNode(c_node)             # <<<<<<<<<<<<<<
@@ -27086,7 +27013,7 @@ static void __pyx_f_4lxml_5etree__removeText(xmlNode *__pyx_v_c_node) {
  */
     xmlFreeNode(__pyx_v_c_node);
 
-    /* "src/lxml/apihelpers.pxi":718
+    /* "src/lxml/apihelpers.pxi":713
  *         tree.xmlUnlinkNode(c_node)
  *         tree.xmlFreeNode(c_node)
  *         c_node = c_next             # <<<<<<<<<<<<<<
@@ -27096,7 +27023,7 @@ static void __pyx_f_4lxml_5etree__removeText(xmlNode *__pyx_v_c_node) {
     __pyx_v_c_node = __pyx_v_c_next;
   }
 
-  /* "src/lxml/apihelpers.pxi":707
+  /* "src/lxml/apihelpers.pxi":702
  *     return funicode(<const_xmlChar*><unsigned char*>result)
  * 
  * cdef void _removeText(xmlNode* c_node):             # <<<<<<<<<<<<<<
@@ -27108,7 +27035,7 @@ static void __pyx_f_4lxml_5etree__removeText(xmlNode *__pyx_v_c_node) {
   __Pyx_RefNannyFinishContext();
 }
 
-/* "src/lxml/apihelpers.pxi":720
+/* "src/lxml/apihelpers.pxi":715
  *         c_node = c_next
  * 
  * cdef xmlNode* _createTextNode(xmlDoc* doc, value) except NULL:             # <<<<<<<<<<<<<<
@@ -27127,7 +27054,7 @@ static xmlNode *__pyx_f_4lxml_5etree__createTextNode(xmlDoc *__pyx_v_doc, PyObje
   PyObject *__pyx_t_4 = NULL;
   __Pyx_RefNannySetupContext("_createTextNode", 0);
 
-  /* "src/lxml/apihelpers.pxi":722
+  /* "src/lxml/apihelpers.pxi":717
  * cdef xmlNode* _createTextNode(xmlDoc* doc, value) except NULL:
  *     cdef xmlNode* c_text_node
  *     if isinstance(value, CDATA):             # <<<<<<<<<<<<<<
@@ -27138,7 +27065,7 @@ static xmlNode *__pyx_f_4lxml_5etree__createTextNode(xmlDoc *__pyx_v_doc, PyObje
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "src/lxml/apihelpers.pxi":724
+    /* "src/lxml/apihelpers.pxi":719
  *     if isinstance(value, CDATA):
  *         c_text_node = tree.xmlNewCDataBlock(
  *             doc, _xcstr((<CDATA>value)._utf8_data),             # <<<<<<<<<<<<<<
@@ -27148,7 +27075,7 @@ static xmlNode *__pyx_f_4lxml_5etree__createTextNode(xmlDoc *__pyx_v_doc, PyObje
     __pyx_t_3 = ((struct __pyx_obj_4lxml_5etree_CDATA *)__pyx_v_value)->_utf8_data;
     __Pyx_INCREF(__pyx_t_3);
 
-    /* "src/lxml/apihelpers.pxi":725
+    /* "src/lxml/apihelpers.pxi":720
  *         c_text_node = tree.xmlNewCDataBlock(
  *             doc, _xcstr((<CDATA>value)._utf8_data),
  *             python.PyBytes_GET_SIZE((<CDATA>value)._utf8_data))             # <<<<<<<<<<<<<<
@@ -27158,7 +27085,7 @@ static xmlNode *__pyx_f_4lxml_5etree__createTextNode(xmlDoc *__pyx_v_doc, PyObje
     __pyx_t_4 = ((struct __pyx_obj_4lxml_5etree_CDATA *)__pyx_v_value)->_utf8_data;
     __Pyx_INCREF(__pyx_t_4);
 
-    /* "src/lxml/apihelpers.pxi":723
+    /* "src/lxml/apihelpers.pxi":718
  *     cdef xmlNode* c_text_node
  *     if isinstance(value, CDATA):
  *         c_text_node = tree.xmlNewCDataBlock(             # <<<<<<<<<<<<<<
@@ -27169,7 +27096,7 @@ static xmlNode *__pyx_f_4lxml_5etree__createTextNode(xmlDoc *__pyx_v_doc, PyObje
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
-    /* "src/lxml/apihelpers.pxi":722
+    /* "src/lxml/apihelpers.pxi":717
  * cdef xmlNode* _createTextNode(xmlDoc* doc, value) except NULL:
  *     cdef xmlNode* c_text_node
  *     if isinstance(value, CDATA):             # <<<<<<<<<<<<<<
@@ -27179,7 +27106,7 @@ static xmlNode *__pyx_f_4lxml_5etree__createTextNode(xmlDoc *__pyx_v_doc, PyObje
     goto __pyx_L3;
   }
 
-  /* "src/lxml/apihelpers.pxi":727
+  /* "src/lxml/apihelpers.pxi":722
  *             python.PyBytes_GET_SIZE((<CDATA>value)._utf8_data))
  *     else:
  *         text = _utf8(value)             # <<<<<<<<<<<<<<
@@ -27187,12 +27114,12 @@ static xmlNode *__pyx_f_4lxml_5etree__createTextNode(xmlDoc *__pyx_v_doc, PyObje
  *     if not c_text_node:
  */
   /*else*/ {
-    __pyx_t_4 = __pyx_f_4lxml_5etree__utf8(__pyx_v_value); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 727, __pyx_L1_error)
+    __pyx_t_4 = __pyx_f_4lxml_5etree__utf8(__pyx_v_value); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 722, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_4);
     __pyx_v_text = ((PyObject*)__pyx_t_4);
     __pyx_t_4 = 0;
 
-    /* "src/lxml/apihelpers.pxi":728
+    /* "src/lxml/apihelpers.pxi":723
  *     else:
  *         text = _utf8(value)
  *         c_text_node = tree.xmlNewDocText(doc, _xcstr(text))             # <<<<<<<<<<<<<<
@@ -27203,7 +27130,7 @@ static xmlNode *__pyx_f_4lxml_5etree__createTextNode(xmlDoc *__pyx_v_doc, PyObje
   }
   __pyx_L3:;
 
-  /* "src/lxml/apihelpers.pxi":729
+  /* "src/lxml/apihelpers.pxi":724
  *         text = _utf8(value)
  *         c_text_node = tree.xmlNewDocText(doc, _xcstr(text))
  *     if not c_text_node:             # <<<<<<<<<<<<<<
@@ -27213,16 +27140,16 @@ static xmlNode *__pyx_f_4lxml_5etree__createTextNode(xmlDoc *__pyx_v_doc, PyObje
   __pyx_t_2 = ((!(__pyx_v_c_text_node != 0)) != 0);
   if (unlikely(__pyx_t_2)) {
 
-    /* "src/lxml/apihelpers.pxi":730
+    /* "src/lxml/apihelpers.pxi":725
  *         c_text_node = tree.xmlNewDocText(doc, _xcstr(text))
  *     if not c_text_node:
  *         raise MemoryError()             # <<<<<<<<<<<<<<
  *     return c_text_node
  * 
  */
-    PyErr_NoMemory(); __PYX_ERR(5, 730, __pyx_L1_error)
+    PyErr_NoMemory(); __PYX_ERR(5, 725, __pyx_L1_error)
 
-    /* "src/lxml/apihelpers.pxi":729
+    /* "src/lxml/apihelpers.pxi":724
  *         text = _utf8(value)
  *         c_text_node = tree.xmlNewDocText(doc, _xcstr(text))
  *     if not c_text_node:             # <<<<<<<<<<<<<<
@@ -27231,7 +27158,7 @@ static xmlNode *__pyx_f_4lxml_5etree__createTextNode(xmlDoc *__pyx_v_doc, PyObje
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":731
+  /* "src/lxml/apihelpers.pxi":726
  *     if not c_text_node:
  *         raise MemoryError()
  *     return c_text_node             # <<<<<<<<<<<<<<
@@ -27241,7 +27168,7 @@ static xmlNode *__pyx_f_4lxml_5etree__createTextNode(xmlDoc *__pyx_v_doc, PyObje
   __pyx_r = __pyx_v_c_text_node;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":720
+  /* "src/lxml/apihelpers.pxi":715
  *         c_node = c_next
  * 
  * cdef xmlNode* _createTextNode(xmlDoc* doc, value) except NULL:             # <<<<<<<<<<<<<<
@@ -27261,7 +27188,7 @@ static xmlNode *__pyx_f_4lxml_5etree__createTextNode(xmlDoc *__pyx_v_doc, PyObje
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":733
+/* "src/lxml/apihelpers.pxi":728
  *     return c_text_node
  * 
  * cdef int _setNodeText(xmlNode* c_node, value) except -1:             # <<<<<<<<<<<<<<
@@ -27278,7 +27205,7 @@ static int __pyx_f_4lxml_5etree__setNodeText(xmlNode *__pyx_v_c_node, PyObject *
   xmlNode *__pyx_t_3;
   __Pyx_RefNannySetupContext("_setNodeText", 0);
 
-  /* "src/lxml/apihelpers.pxi":735
+  /* "src/lxml/apihelpers.pxi":730
  * cdef int _setNodeText(xmlNode* c_node, value) except -1:
  *     # remove all text nodes at the start first
  *     _removeText(c_node.children)             # <<<<<<<<<<<<<<
@@ -27287,7 +27214,7 @@ static int __pyx_f_4lxml_5etree__setNodeText(xmlNode *__pyx_v_c_node, PyObject *
  */
   __pyx_f_4lxml_5etree__removeText(__pyx_v_c_node->children);
 
-  /* "src/lxml/apihelpers.pxi":736
+  /* "src/lxml/apihelpers.pxi":731
  *     # remove all text nodes at the start first
  *     _removeText(c_node.children)
  *     if value is None:             # <<<<<<<<<<<<<<
@@ -27298,7 +27225,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) {
 
-    /* "src/lxml/apihelpers.pxi":737
+    /* "src/lxml/apihelpers.pxi":732
  *     _removeText(c_node.children)
  *     if value is None:
  *         return 0             # <<<<<<<<<<<<<<
@@ -27308,7 +27235,7 @@ static int __pyx_f_4lxml_5etree__setNodeText(xmlNode *__pyx_v_c_node, PyObject *
     __pyx_r = 0;
     goto __pyx_L0;
 
-    /* "src/lxml/apihelpers.pxi":736
+    /* "src/lxml/apihelpers.pxi":731
  *     # remove all text nodes at the start first
  *     _removeText(c_node.children)
  *     if value is None:             # <<<<<<<<<<<<<<
@@ -27317,17 +27244,17 @@ static int __pyx_f_4lxml_5etree__setNodeText(xmlNode *__pyx_v_c_node, PyObject *
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":739
+  /* "src/lxml/apihelpers.pxi":734
  *         return 0
  *     # now add new text node with value at start
  *     c_text_node = _createTextNode(c_node.doc, value)             # <<<<<<<<<<<<<<
  *     if c_node.children is NULL:
  *         tree.xmlAddChild(c_node, c_text_node)
  */
-  __pyx_t_3 = __pyx_f_4lxml_5etree__createTextNode(__pyx_v_c_node->doc, __pyx_v_value); if (unlikely(__pyx_t_3 == ((xmlNode *)NULL))) __PYX_ERR(5, 739, __pyx_L1_error)
+  __pyx_t_3 = __pyx_f_4lxml_5etree__createTextNode(__pyx_v_c_node->doc, __pyx_v_value); if (unlikely(__pyx_t_3 == ((xmlNode *)NULL))) __PYX_ERR(5, 734, __pyx_L1_error)
   __pyx_v_c_text_node = __pyx_t_3;
 
-  /* "src/lxml/apihelpers.pxi":740
+  /* "src/lxml/apihelpers.pxi":735
  *     # now add new text node with value at start
  *     c_text_node = _createTextNode(c_node.doc, value)
  *     if c_node.children is NULL:             # <<<<<<<<<<<<<<
@@ -27337,7 +27264,7 @@ static int __pyx_f_4lxml_5etree__setNodeText(xmlNode *__pyx_v_c_node, PyObject *
   __pyx_t_2 = ((__pyx_v_c_node->children == NULL) != 0);
   if (__pyx_t_2) {
 
-    /* "src/lxml/apihelpers.pxi":741
+    /* "src/lxml/apihelpers.pxi":736
  *     c_text_node = _createTextNode(c_node.doc, value)
  *     if c_node.children is NULL:
  *         tree.xmlAddChild(c_node, c_text_node)             # <<<<<<<<<<<<<<
@@ -27346,7 +27273,7 @@ static int __pyx_f_4lxml_5etree__setNodeText(xmlNode *__pyx_v_c_node, PyObject *
  */
     (void)(xmlAddChild(__pyx_v_c_node, __pyx_v_c_text_node));
 
-    /* "src/lxml/apihelpers.pxi":740
+    /* "src/lxml/apihelpers.pxi":735
  *     # now add new text node with value at start
  *     c_text_node = _createTextNode(c_node.doc, value)
  *     if c_node.children is NULL:             # <<<<<<<<<<<<<<
@@ -27356,7 +27283,7 @@ static int __pyx_f_4lxml_5etree__setNodeText(xmlNode *__pyx_v_c_node, PyObject *
     goto __pyx_L4;
   }
 
-  /* "src/lxml/apihelpers.pxi":743
+  /* "src/lxml/apihelpers.pxi":738
  *         tree.xmlAddChild(c_node, c_text_node)
  *     else:
  *         tree.xmlAddPrevSibling(c_node.children, c_text_node)             # <<<<<<<<<<<<<<
@@ -27368,7 +27295,7 @@ static int __pyx_f_4lxml_5etree__setNodeText(xmlNode *__pyx_v_c_node, PyObject *
   }
   __pyx_L4:;
 
-  /* "src/lxml/apihelpers.pxi":744
+  /* "src/lxml/apihelpers.pxi":739
  *     else:
  *         tree.xmlAddPrevSibling(c_node.children, c_text_node)
  *     return 0             # <<<<<<<<<<<<<<
@@ -27378,7 +27305,7 @@ static int __pyx_f_4lxml_5etree__setNodeText(xmlNode *__pyx_v_c_node, PyObject *
   __pyx_r = 0;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":733
+  /* "src/lxml/apihelpers.pxi":728
  *     return c_text_node
  * 
  * cdef int _setNodeText(xmlNode* c_node, value) except -1:             # <<<<<<<<<<<<<<
@@ -27395,7 +27322,7 @@ static int __pyx_f_4lxml_5etree__setNodeText(xmlNode *__pyx_v_c_node, PyObject *
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":746
+/* "src/lxml/apihelpers.pxi":741
  *     return 0
  * 
  * cdef int _setTailText(xmlNode* c_node, value) except -1:             # <<<<<<<<<<<<<<
@@ -27412,7 +27339,7 @@ static int __pyx_f_4lxml_5etree__setTailText(xmlNode *__pyx_v_c_node, PyObject *
   xmlNode *__pyx_t_3;
   __Pyx_RefNannySetupContext("_setTailText", 0);
 
-  /* "src/lxml/apihelpers.pxi":748
+  /* "src/lxml/apihelpers.pxi":743
  * cdef int _setTailText(xmlNode* c_node, value) except -1:
  *     # remove all text nodes at the start first
  *     _removeText(c_node.next)             # <<<<<<<<<<<<<<
@@ -27421,7 +27348,7 @@ static int __pyx_f_4lxml_5etree__setTailText(xmlNode *__pyx_v_c_node, PyObject *
  */
   __pyx_f_4lxml_5etree__removeText(__pyx_v_c_node->next);
 
-  /* "src/lxml/apihelpers.pxi":749
+  /* "src/lxml/apihelpers.pxi":744
  *     # remove all text nodes at the start first
  *     _removeText(c_node.next)
  *     if value is None:             # <<<<<<<<<<<<<<
@@ -27432,7 +27359,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) {
 
-    /* "src/lxml/apihelpers.pxi":750
+    /* "src/lxml/apihelpers.pxi":745
  *     _removeText(c_node.next)
  *     if value is None:
  *         return 0             # <<<<<<<<<<<<<<
@@ -27442,7 +27369,7 @@ static int __pyx_f_4lxml_5etree__setTailText(xmlNode *__pyx_v_c_node, PyObject *
     __pyx_r = 0;
     goto __pyx_L0;
 
-    /* "src/lxml/apihelpers.pxi":749
+    /* "src/lxml/apihelpers.pxi":744
  *     # remove all text nodes at the start first
  *     _removeText(c_node.next)
  *     if value is None:             # <<<<<<<<<<<<<<
@@ -27451,17 +27378,17 @@ static int __pyx_f_4lxml_5etree__setTailText(xmlNode *__pyx_v_c_node, PyObject *
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":752
+  /* "src/lxml/apihelpers.pxi":747
  *         return 0
  *     # now append new text node with value
  *     c_text_node = _createTextNode(c_node.doc, value)             # <<<<<<<<<<<<<<
  *     tree.xmlAddNextSibling(c_node, c_text_node)
  *     return 0
  */
-  __pyx_t_3 = __pyx_f_4lxml_5etree__createTextNode(__pyx_v_c_node->doc, __pyx_v_value); if (unlikely(__pyx_t_3 == ((xmlNode *)NULL))) __PYX_ERR(5, 752, __pyx_L1_error)
+  __pyx_t_3 = __pyx_f_4lxml_5etree__createTextNode(__pyx_v_c_node->doc, __pyx_v_value); if (unlikely(__pyx_t_3 == ((xmlNode *)NULL))) __PYX_ERR(5, 747, __pyx_L1_error)
   __pyx_v_c_text_node = __pyx_t_3;
 
-  /* "src/lxml/apihelpers.pxi":753
+  /* "src/lxml/apihelpers.pxi":748
  *     # now append new text node with value
  *     c_text_node = _createTextNode(c_node.doc, value)
  *     tree.xmlAddNextSibling(c_node, c_text_node)             # <<<<<<<<<<<<<<
@@ -27470,7 +27397,7 @@ static int __pyx_f_4lxml_5etree__setTailText(xmlNode *__pyx_v_c_node, PyObject *
  */
   (void)(xmlAddNextSibling(__pyx_v_c_node, __pyx_v_c_text_node));
 
-  /* "src/lxml/apihelpers.pxi":754
+  /* "src/lxml/apihelpers.pxi":749
  *     c_text_node = _createTextNode(c_node.doc, value)
  *     tree.xmlAddNextSibling(c_node, c_text_node)
  *     return 0             # <<<<<<<<<<<<<<
@@ -27480,7 +27407,7 @@ static int __pyx_f_4lxml_5etree__setTailText(xmlNode *__pyx_v_c_node, PyObject *
   __pyx_r = 0;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":746
+  /* "src/lxml/apihelpers.pxi":741
  *     return 0
  * 
  * cdef int _setTailText(xmlNode* c_node, value) except -1:             # <<<<<<<<<<<<<<
@@ -27497,7 +27424,7 @@ static int __pyx_f_4lxml_5etree__setTailText(xmlNode *__pyx_v_c_node, PyObject *
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":756
+/* "src/lxml/apihelpers.pxi":751
  *     return 0
  * 
  * cdef bytes _resolveQNameText(_Element element, value):             # <<<<<<<<<<<<<<
@@ -27519,14 +27446,14 @@ static PyObject *__pyx_f_4lxml_5etree__resolveQNameText(struct LxmlElement *__py
   xmlNs *__pyx_t_6;
   __Pyx_RefNannySetupContext("_resolveQNameText", 0);
 
-  /* "src/lxml/apihelpers.pxi":758
+  /* "src/lxml/apihelpers.pxi":753
  * 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_ERR(5, 758, __pyx_L1_error)
+  __pyx_t_1 = __pyx_f_4lxml_5etree__getNsTag(__pyx_v_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 753, __pyx_L1_error)
   __Pyx_GOTREF(__pyx_t_1);
   if (likely(__pyx_t_1 != Py_None)) {
     PyObject* sequence = __pyx_t_1;
@@ -27534,7 +27461,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_ERR(5, 758, __pyx_L1_error)
+      __PYX_ERR(5, 753, __pyx_L1_error)
     }
     #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
     __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); 
@@ -27542,21 +27469,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_ERR(5, 758, __pyx_L1_error)
+    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 753, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_2);
-    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 758, __pyx_L1_error)
+    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 753, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_3);
     #endif
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   } else {
-    __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(5, 758, __pyx_L1_error)
+    __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(5, 753, __pyx_L1_error)
   }
   __pyx_v_ns = __pyx_t_2;
   __pyx_t_2 = 0;
   __pyx_v_tag = __pyx_t_3;
   __pyx_t_3 = 0;
 
-  /* "src/lxml/apihelpers.pxi":759
+  /* "src/lxml/apihelpers.pxi":754
  *     cdef xmlNs* c_ns
  *     ns, tag = _getNsTag(value)
  *     if ns is None:             # <<<<<<<<<<<<<<
@@ -27567,7 +27494,7 @@ static PyObject *__pyx_f_4lxml_5etree__resolveQNameText(struct LxmlElement *__py
   __pyx_t_5 = (__pyx_t_4 != 0);
   if (__pyx_t_5) {
 
-    /* "src/lxml/apihelpers.pxi":760
+    /* "src/lxml/apihelpers.pxi":755
  *     ns, tag = _getNsTag(value)
  *     if ns is None:
  *         return tag             # <<<<<<<<<<<<<<
@@ -27575,12 +27502,12 @@ 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_ERR(5, 760, __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_ERR(5, 755, __pyx_L1_error)
     __Pyx_INCREF(__pyx_v_tag);
     __pyx_r = ((PyObject*)__pyx_v_tag);
     goto __pyx_L0;
 
-    /* "src/lxml/apihelpers.pxi":759
+    /* "src/lxml/apihelpers.pxi":754
  *     cdef xmlNs* c_ns
  *     ns, tag = _getNsTag(value)
  *     if ns is None:             # <<<<<<<<<<<<<<
@@ -27589,7 +27516,7 @@ static PyObject *__pyx_f_4lxml_5etree__resolveQNameText(struct LxmlElement *__py
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":762
+  /* "src/lxml/apihelpers.pxi":757
  *         return tag
  *     else:
  *         c_ns = element._doc._findOrBuildNodeNs(             # <<<<<<<<<<<<<<
@@ -27598,17 +27525,17 @@ static PyObject *__pyx_f_4lxml_5etree__resolveQNameText(struct LxmlElement *__py
  */
   /*else*/ {
 
-    /* "src/lxml/apihelpers.pxi":763
+    /* "src/lxml/apihelpers.pxi":758
  *     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 == ((xmlNs *)NULL))) __PYX_ERR(5, 762, __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 == ((xmlNs *)NULL))) __PYX_ERR(5, 757, __pyx_L1_error)
     __pyx_v_c_ns = __pyx_t_6;
 
-    /* "src/lxml/apihelpers.pxi":764
+    /* "src/lxml/apihelpers.pxi":759
  *         c_ns = element._doc._findOrBuildNodeNs(
  *             element._c_node, _xcstr(ns), NULL, 0)
  *         return python.PyBytes_FromFormat('%s:%s', c_ns.prefix, _cstr(tag))             # <<<<<<<<<<<<<<
@@ -27616,14 +27543,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(((char *)"%s:%s"), __pyx_v_c_ns->prefix, PyBytes_AS_STRING(__pyx_v_tag)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 764, __pyx_L1_error)
+    __pyx_t_1 = PyBytes_FromFormat(((char *)"%s:%s"), __pyx_v_c_ns->prefix, PyBytes_AS_STRING(__pyx_v_tag)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 759, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_1);
     __pyx_r = ((PyObject*)__pyx_t_1);
     __pyx_t_1 = 0;
     goto __pyx_L0;
   }
 
-  /* "src/lxml/apihelpers.pxi":756
+  /* "src/lxml/apihelpers.pxi":751
  *     return 0
  * 
  * cdef bytes _resolveQNameText(_Element element, value):             # <<<<<<<<<<<<<<
@@ -27646,7 +27573,7 @@ static PyObject *__pyx_f_4lxml_5etree__resolveQNameText(struct LxmlElement *__py
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":766
+/* "src/lxml/apihelpers.pxi":761
  *         return python.PyBytes_FromFormat('%s:%s', c_ns.prefix, _cstr(tag))
  * 
  * cdef inline bint _hasChild(xmlNode* c_node):             # <<<<<<<<<<<<<<
@@ -27661,7 +27588,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__hasChild(xmlNode *__pyx_v_c_node)
   int __pyx_t_2;
   __Pyx_RefNannySetupContext("_hasChild", 0);
 
-  /* "src/lxml/apihelpers.pxi":767
+  /* "src/lxml/apihelpers.pxi":762
  * 
  * cdef inline bint _hasChild(xmlNode* c_node):
  *     return c_node is not NULL and _findChildForwards(c_node, 0) is not NULL             # <<<<<<<<<<<<<<
@@ -27680,7 +27607,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__hasChild(xmlNode *__pyx_v_c_node)
   __pyx_r = __pyx_t_1;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":766
+  /* "src/lxml/apihelpers.pxi":761
  *         return python.PyBytes_FromFormat('%s:%s', c_ns.prefix, _cstr(tag))
  * 
  * cdef inline bint _hasChild(xmlNode* c_node):             # <<<<<<<<<<<<<<
@@ -27694,7 +27621,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__hasChild(xmlNode *__pyx_v_c_node)
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":769
+/* "src/lxml/apihelpers.pxi":764
  *     return c_node is not NULL and _findChildForwards(c_node, 0) is not NULL
  * 
  * cdef inline Py_ssize_t _countElements(xmlNode* c_node):             # <<<<<<<<<<<<<<
@@ -27710,7 +27637,7 @@ static CYTHON_INLINE Py_ssize_t __pyx_f_4lxml_5etree__countElements(xmlNode *__p
   xmlNode *__pyx_t_2;
   __Pyx_RefNannySetupContext("_countElements", 0);
 
-  /* "src/lxml/apihelpers.pxi":772
+  /* "src/lxml/apihelpers.pxi":767
  *     u"Counts the elements within the following siblings and the node itself."
  *     cdef Py_ssize_t count
  *     count = 0             # <<<<<<<<<<<<<<
@@ -27719,7 +27646,7 @@ static CYTHON_INLINE Py_ssize_t __pyx_f_4lxml_5etree__countElements(xmlNode *__p
  */
   __pyx_v_count = 0;
 
-  /* "src/lxml/apihelpers.pxi":773
+  /* "src/lxml/apihelpers.pxi":768
  *     cdef Py_ssize_t count
  *     count = 0
  *     while c_node is not NULL:             # <<<<<<<<<<<<<<
@@ -27730,7 +27657,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;
 
-    /* "src/lxml/apihelpers.pxi":774
+    /* "src/lxml/apihelpers.pxi":769
  *     count = 0
  *     while c_node is not NULL:
  *         if _isElement(c_node):             # <<<<<<<<<<<<<<
@@ -27740,7 +27667,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) {
 
-      /* "src/lxml/apihelpers.pxi":775
+      /* "src/lxml/apihelpers.pxi":770
  *     while c_node is not NULL:
  *         if _isElement(c_node):
  *             count += 1             # <<<<<<<<<<<<<<
@@ -27749,7 +27676,7 @@ static CYTHON_INLINE Py_ssize_t __pyx_f_4lxml_5etree__countElements(xmlNode *__p
  */
       __pyx_v_count = (__pyx_v_count + 1);
 
-      /* "src/lxml/apihelpers.pxi":774
+      /* "src/lxml/apihelpers.pxi":769
  *     count = 0
  *     while c_node is not NULL:
  *         if _isElement(c_node):             # <<<<<<<<<<<<<<
@@ -27758,7 +27685,7 @@ static CYTHON_INLINE Py_ssize_t __pyx_f_4lxml_5etree__countElements(xmlNode *__p
  */
     }
 
-    /* "src/lxml/apihelpers.pxi":776
+    /* "src/lxml/apihelpers.pxi":771
  *         if _isElement(c_node):
  *             count += 1
  *         c_node = c_node.next             # <<<<<<<<<<<<<<
@@ -27769,7 +27696,7 @@ static CYTHON_INLINE Py_ssize_t __pyx_f_4lxml_5etree__countElements(xmlNode *__p
     __pyx_v_c_node = __pyx_t_2;
   }
 
-  /* "src/lxml/apihelpers.pxi":777
+  /* "src/lxml/apihelpers.pxi":772
  *             count += 1
  *         c_node = c_node.next
  *     return count             # <<<<<<<<<<<<<<
@@ -27779,7 +27706,7 @@ static CYTHON_INLINE Py_ssize_t __pyx_f_4lxml_5etree__countElements(xmlNode *__p
   __pyx_r = __pyx_v_count;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":769
+  /* "src/lxml/apihelpers.pxi":764
  *     return c_node is not NULL and _findChildForwards(c_node, 0) is not NULL
  * 
  * cdef inline Py_ssize_t _countElements(xmlNode* c_node):             # <<<<<<<<<<<<<<
@@ -27793,7 +27720,7 @@ static CYTHON_INLINE Py_ssize_t __pyx_f_4lxml_5etree__countElements(xmlNode *__p
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":779
+/* "src/lxml/apihelpers.pxi":774
  *     return count
  * 
  * cdef int _findChildSlice(             # <<<<<<<<<<<<<<
@@ -27813,7 +27740,7 @@ static int __pyx_f_4lxml_5etree__findChildSlice(PyObject *__pyx_v_sliceobject, x
   int __pyx_t_4;
   __Pyx_RefNannySetupContext("_findChildSlice", 0);
 
-  /* "src/lxml/apihelpers.pxi":787
+  /* "src/lxml/apihelpers.pxi":782
  *     pointer arguments.
  *     """
  *     cdef Py_ssize_t start = 0, stop = 0, childcount             # <<<<<<<<<<<<<<
@@ -27823,7 +27750,7 @@ static int __pyx_f_4lxml_5etree__findChildSlice(PyObject *__pyx_v_sliceobject, x
   __pyx_v_start = 0;
   __pyx_v_stop = 0;
 
-  /* "src/lxml/apihelpers.pxi":788
+  /* "src/lxml/apihelpers.pxi":783
  *     """
  *     cdef Py_ssize_t start = 0, stop = 0, childcount
  *     childcount = _countElements(c_parent.children)             # <<<<<<<<<<<<<<
@@ -27832,7 +27759,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);
 
-  /* "src/lxml/apihelpers.pxi":789
+  /* "src/lxml/apihelpers.pxi":784
  *     cdef Py_ssize_t start = 0, stop = 0, childcount
  *     childcount = _countElements(c_parent.children)
  *     if childcount == 0:             # <<<<<<<<<<<<<<
@@ -27842,7 +27769,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) {
 
-    /* "src/lxml/apihelpers.pxi":790
+    /* "src/lxml/apihelpers.pxi":785
  *     childcount = _countElements(c_parent.children)
  *     if childcount == 0:
  *         c_start_node[0] = NULL             # <<<<<<<<<<<<<<
@@ -27851,7 +27778,7 @@ static int __pyx_f_4lxml_5etree__findChildSlice(PyObject *__pyx_v_sliceobject, x
  */
     (__pyx_v_c_start_node[0]) = NULL;
 
-    /* "src/lxml/apihelpers.pxi":791
+    /* "src/lxml/apihelpers.pxi":786
  *     if childcount == 0:
  *         c_start_node[0] = NULL
  *         c_length[0] = 0             # <<<<<<<<<<<<<<
@@ -27860,7 +27787,7 @@ static int __pyx_f_4lxml_5etree__findChildSlice(PyObject *__pyx_v_sliceobject, x
  */
     (__pyx_v_c_length[0]) = 0;
 
-    /* "src/lxml/apihelpers.pxi":792
+    /* "src/lxml/apihelpers.pxi":787
  *         c_start_node[0] = NULL
  *         c_length[0] = 0
  *         if sliceobject.step is None:             # <<<<<<<<<<<<<<
@@ -27871,7 +27798,7 @@ static int __pyx_f_4lxml_5etree__findChildSlice(PyObject *__pyx_v_sliceobject, x
     __pyx_t_2 = (__pyx_t_1 != 0);
     if (__pyx_t_2) {
 
-      /* "src/lxml/apihelpers.pxi":793
+      /* "src/lxml/apihelpers.pxi":788
  *         c_length[0] = 0
  *         if sliceobject.step is None:
  *             c_step[0] = 1             # <<<<<<<<<<<<<<
@@ -27880,7 +27807,7 @@ static int __pyx_f_4lxml_5etree__findChildSlice(PyObject *__pyx_v_sliceobject, x
  */
       (__pyx_v_c_step[0]) = 1;
 
-      /* "src/lxml/apihelpers.pxi":792
+      /* "src/lxml/apihelpers.pxi":787
  *         c_start_node[0] = NULL
  *         c_length[0] = 0
  *         if sliceobject.step is None:             # <<<<<<<<<<<<<<
@@ -27890,7 +27817,7 @@ static int __pyx_f_4lxml_5etree__findChildSlice(PyObject *__pyx_v_sliceobject, x
       goto __pyx_L4;
     }
 
-    /* "src/lxml/apihelpers.pxi":795
+    /* "src/lxml/apihelpers.pxi":790
  *             c_step[0] = 1
  *         else:
  *             python._PyEval_SliceIndex(sliceobject.step, c_step)             # <<<<<<<<<<<<<<
@@ -27900,12 +27827,12 @@ static int __pyx_f_4lxml_5etree__findChildSlice(PyObject *__pyx_v_sliceobject, x
     /*else*/ {
       __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 == ((int)0))) __PYX_ERR(5, 795, __pyx_L1_error)
+      __pyx_t_4 = _PyEval_SliceIndex(__pyx_t_3, __pyx_v_c_step); if (unlikely(__pyx_t_4 == ((int)0))) __PYX_ERR(5, 790, __pyx_L1_error)
       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     }
     __pyx_L4:;
 
-    /* "src/lxml/apihelpers.pxi":796
+    /* "src/lxml/apihelpers.pxi":791
  *         else:
  *             python._PyEval_SliceIndex(sliceobject.step, c_step)
  *         return 0             # <<<<<<<<<<<<<<
@@ -27915,7 +27842,7 @@ static int __pyx_f_4lxml_5etree__findChildSlice(PyObject *__pyx_v_sliceobject, x
     __pyx_r = 0;
     goto __pyx_L0;
 
-    /* "src/lxml/apihelpers.pxi":789
+    /* "src/lxml/apihelpers.pxi":784
  *     cdef Py_ssize_t start = 0, stop = 0, childcount
  *     childcount = _countElements(c_parent.children)
  *     if childcount == 0:             # <<<<<<<<<<<<<<
@@ -27924,16 +27851,16 @@ static int __pyx_f_4lxml_5etree__findChildSlice(PyObject *__pyx_v_sliceobject, x
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":797
+  /* "src/lxml/apihelpers.pxi":792
  *             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 == ((int)-1))) __PYX_ERR(5, 797, __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 == ((int)-1))) __PYX_ERR(5, 792, __pyx_L1_error)
 
-  /* "src/lxml/apihelpers.pxi":799
+  /* "src/lxml/apihelpers.pxi":794
  *     python.PySlice_GetIndicesEx(
  *         sliceobject, childcount, &start, &stop, c_step, c_length)
  *     if start > childcount / 2:             # <<<<<<<<<<<<<<
@@ -27943,7 +27870,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) {
 
-    /* "src/lxml/apihelpers.pxi":800
+    /* "src/lxml/apihelpers.pxi":795
  *         sliceobject, childcount, &start, &stop, c_step, c_length)
  *     if start > childcount / 2:
  *         c_start_node[0] = _findChildBackwards(c_parent, childcount - start - 1)             # <<<<<<<<<<<<<<
@@ -27952,7 +27879,7 @@ static int __pyx_f_4lxml_5etree__findChildSlice(PyObject *__pyx_v_sliceobject, x
  */
     (__pyx_v_c_start_node[0]) = __pyx_f_4lxml_5etree__findChildBackwards(__pyx_v_c_parent, ((__pyx_v_childcount - __pyx_v_start) - 1));
 
-    /* "src/lxml/apihelpers.pxi":799
+    /* "src/lxml/apihelpers.pxi":794
  *     python.PySlice_GetIndicesEx(
  *         sliceobject, childcount, &start, &stop, c_step, c_length)
  *     if start > childcount / 2:             # <<<<<<<<<<<<<<
@@ -27962,7 +27889,7 @@ static int __pyx_f_4lxml_5etree__findChildSlice(PyObject *__pyx_v_sliceobject, x
     goto __pyx_L5;
   }
 
-  /* "src/lxml/apihelpers.pxi":802
+  /* "src/lxml/apihelpers.pxi":797
  *         c_start_node[0] = _findChildBackwards(c_parent, childcount - start - 1)
  *     else:
  *         c_start_node[0] = _findChild(c_parent, start)             # <<<<<<<<<<<<<<
@@ -27974,7 +27901,7 @@ static int __pyx_f_4lxml_5etree__findChildSlice(PyObject *__pyx_v_sliceobject, x
   }
   __pyx_L5:;
 
-  /* "src/lxml/apihelpers.pxi":803
+  /* "src/lxml/apihelpers.pxi":798
  *     else:
  *         c_start_node[0] = _findChild(c_parent, start)
  *     return 0             # <<<<<<<<<<<<<<
@@ -27984,7 +27911,7 @@ static int __pyx_f_4lxml_5etree__findChildSlice(PyObject *__pyx_v_sliceobject, x
   __pyx_r = 0;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":779
+  /* "src/lxml/apihelpers.pxi":774
  *     return count
  * 
  * cdef int _findChildSlice(             # <<<<<<<<<<<<<<
@@ -28002,7 +27929,7 @@ static int __pyx_f_4lxml_5etree__findChildSlice(PyObject *__pyx_v_sliceobject, x
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":805
+/* "src/lxml/apihelpers.pxi":800
  *     return 0
  * 
  * cdef bint _isFullSlice(slice sliceobject) except -1:             # <<<<<<<<<<<<<<
@@ -28021,7 +27948,7 @@ static int __pyx_f_4lxml_5etree__isFullSlice(PyObject *__pyx_v_sliceobject) {
   int __pyx_t_5;
   __Pyx_RefNannySetupContext("_isFullSlice", 0);
 
-  /* "src/lxml/apihelpers.pxi":808
+  /* "src/lxml/apihelpers.pxi":803
  *     u"""Conservative guess if this slice is a full slice as in ``s[:]``.
  *     """
  *     cdef Py_ssize_t step = 0             # <<<<<<<<<<<<<<
@@ -28030,7 +27957,7 @@ static int __pyx_f_4lxml_5etree__isFullSlice(PyObject *__pyx_v_sliceobject) {
  */
   __pyx_v_step = 0;
 
-  /* "src/lxml/apihelpers.pxi":809
+  /* "src/lxml/apihelpers.pxi":804
  *     """
  *     cdef Py_ssize_t step = 0
  *     if sliceobject is None:             # <<<<<<<<<<<<<<
@@ -28041,7 +27968,7 @@ static int __pyx_f_4lxml_5etree__isFullSlice(PyObject *__pyx_v_sliceobject) {
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "src/lxml/apihelpers.pxi":810
+    /* "src/lxml/apihelpers.pxi":805
  *     cdef Py_ssize_t step = 0
  *     if sliceobject is None:
  *         return 0             # <<<<<<<<<<<<<<
@@ -28051,7 +27978,7 @@ static int __pyx_f_4lxml_5etree__isFullSlice(PyObject *__pyx_v_sliceobject) {
     __pyx_r = 0;
     goto __pyx_L0;
 
-    /* "src/lxml/apihelpers.pxi":809
+    /* "src/lxml/apihelpers.pxi":804
  *     """
  *     cdef Py_ssize_t step = 0
  *     if sliceobject is None:             # <<<<<<<<<<<<<<
@@ -28060,7 +27987,7 @@ static int __pyx_f_4lxml_5etree__isFullSlice(PyObject *__pyx_v_sliceobject) {
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":811
+  /* "src/lxml/apihelpers.pxi":806
  *     if sliceobject is None:
  *         return 0
  *     if sliceobject.start is None and \             # <<<<<<<<<<<<<<
@@ -28075,7 +28002,7 @@ static int __pyx_f_4lxml_5etree__isFullSlice(PyObject *__pyx_v_sliceobject) {
     goto __pyx_L5_bool_binop_done;
   }
 
-  /* "src/lxml/apihelpers.pxi":812
+  /* "src/lxml/apihelpers.pxi":807
  *         return 0
  *     if sliceobject.start is None and \
  *             sliceobject.stop is None:             # <<<<<<<<<<<<<<
@@ -28087,7 +28014,7 @@ static int __pyx_f_4lxml_5etree__isFullSlice(PyObject *__pyx_v_sliceobject) {
   __pyx_t_2 = __pyx_t_1;
   __pyx_L5_bool_binop_done:;
 
-  /* "src/lxml/apihelpers.pxi":811
+  /* "src/lxml/apihelpers.pxi":806
  *     if sliceobject is None:
  *         return 0
  *     if sliceobject.start is None and \             # <<<<<<<<<<<<<<
@@ -28096,7 +28023,7 @@ static int __pyx_f_4lxml_5etree__isFullSlice(PyObject *__pyx_v_sliceobject) {
  */
   if (__pyx_t_2) {
 
-    /* "src/lxml/apihelpers.pxi":813
+    /* "src/lxml/apihelpers.pxi":808
  *     if sliceobject.start is None and \
  *             sliceobject.stop is None:
  *         if sliceobject.step is None:             # <<<<<<<<<<<<<<
@@ -28107,7 +28034,7 @@ static int __pyx_f_4lxml_5etree__isFullSlice(PyObject *__pyx_v_sliceobject) {
     __pyx_t_1 = (__pyx_t_2 != 0);
     if (__pyx_t_1) {
 
-      /* "src/lxml/apihelpers.pxi":814
+      /* "src/lxml/apihelpers.pxi":809
  *             sliceobject.stop is None:
  *         if sliceobject.step is None:
  *             return 1             # <<<<<<<<<<<<<<
@@ -28117,7 +28044,7 @@ static int __pyx_f_4lxml_5etree__isFullSlice(PyObject *__pyx_v_sliceobject) {
       __pyx_r = 1;
       goto __pyx_L0;
 
-      /* "src/lxml/apihelpers.pxi":813
+      /* "src/lxml/apihelpers.pxi":808
  *     if sliceobject.start is None and \
  *             sliceobject.stop is None:
  *         if sliceobject.step is None:             # <<<<<<<<<<<<<<
@@ -28126,7 +28053,7 @@ static int __pyx_f_4lxml_5etree__isFullSlice(PyObject *__pyx_v_sliceobject) {
  */
     }
 
-    /* "src/lxml/apihelpers.pxi":815
+    /* "src/lxml/apihelpers.pxi":810
  *         if sliceobject.step is None:
  *             return 1
  *         python._PyEval_SliceIndex(sliceobject.step, &step)             # <<<<<<<<<<<<<<
@@ -28135,10 +28062,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 == ((int)0))) __PYX_ERR(5, 815, __pyx_L1_error)
+    __pyx_t_5 = _PyEval_SliceIndex(__pyx_t_4, (&__pyx_v_step)); if (unlikely(__pyx_t_5 == ((int)0))) __PYX_ERR(5, 810, __pyx_L1_error)
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
-    /* "src/lxml/apihelpers.pxi":816
+    /* "src/lxml/apihelpers.pxi":811
  *             return 1
  *         python._PyEval_SliceIndex(sliceobject.step, &step)
  *         if step == 1:             # <<<<<<<<<<<<<<
@@ -28148,7 +28075,7 @@ static int __pyx_f_4lxml_5etree__isFullSlice(PyObject *__pyx_v_sliceobject) {
     __pyx_t_1 = ((__pyx_v_step == 1) != 0);
     if (__pyx_t_1) {
 
-      /* "src/lxml/apihelpers.pxi":817
+      /* "src/lxml/apihelpers.pxi":812
  *         python._PyEval_SliceIndex(sliceobject.step, &step)
  *         if step == 1:
  *             return 1             # <<<<<<<<<<<<<<
@@ -28158,7 +28085,7 @@ static int __pyx_f_4lxml_5etree__isFullSlice(PyObject *__pyx_v_sliceobject) {
       __pyx_r = 1;
       goto __pyx_L0;
 
-      /* "src/lxml/apihelpers.pxi":816
+      /* "src/lxml/apihelpers.pxi":811
  *             return 1
  *         python._PyEval_SliceIndex(sliceobject.step, &step)
  *         if step == 1:             # <<<<<<<<<<<<<<
@@ -28167,7 +28094,7 @@ static int __pyx_f_4lxml_5etree__isFullSlice(PyObject *__pyx_v_sliceobject) {
  */
     }
 
-    /* "src/lxml/apihelpers.pxi":818
+    /* "src/lxml/apihelpers.pxi":813
  *         if step == 1:
  *             return 1
  *         return 0             # <<<<<<<<<<<<<<
@@ -28177,7 +28104,7 @@ static int __pyx_f_4lxml_5etree__isFullSlice(PyObject *__pyx_v_sliceobject) {
     __pyx_r = 0;
     goto __pyx_L0;
 
-    /* "src/lxml/apihelpers.pxi":811
+    /* "src/lxml/apihelpers.pxi":806
  *     if sliceobject is None:
  *         return 0
  *     if sliceobject.start is None and \             # <<<<<<<<<<<<<<
@@ -28186,7 +28113,7 @@ static int __pyx_f_4lxml_5etree__isFullSlice(PyObject *__pyx_v_sliceobject) {
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":819
+  /* "src/lxml/apihelpers.pxi":814
  *             return 1
  *         return 0
  *     return 0             # <<<<<<<<<<<<<<
@@ -28196,7 +28123,7 @@ static int __pyx_f_4lxml_5etree__isFullSlice(PyObject *__pyx_v_sliceobject) {
   __pyx_r = 0;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":805
+  /* "src/lxml/apihelpers.pxi":800
  *     return 0
  * 
  * cdef bint _isFullSlice(slice sliceobject) except -1:             # <<<<<<<<<<<<<<
@@ -28214,7 +28141,7 @@ static int __pyx_f_4lxml_5etree__isFullSlice(PyObject *__pyx_v_sliceobject) {
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":821
+/* "src/lxml/apihelpers.pxi":816
  *     return 0
  * 
  * cdef _collectChildren(_Element element):             # <<<<<<<<<<<<<<
@@ -28234,19 +28161,19 @@ static PyObject *__pyx_f_4lxml_5etree__collectChildren(struct LxmlElement *__pyx
   int __pyx_t_5;
   __Pyx_RefNannySetupContext("_collectChildren", 0);
 
-  /* "src/lxml/apihelpers.pxi":823
+  /* "src/lxml/apihelpers.pxi":818
  * 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_ERR(5, 823, __pyx_L1_error)
+  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 818, __pyx_L1_error)
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_v_result = ((PyObject*)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "src/lxml/apihelpers.pxi":824
+  /* "src/lxml/apihelpers.pxi":819
  *     cdef xmlNode* c_node
  *     cdef list result = []
  *     c_node = element._c_node.children             # <<<<<<<<<<<<<<
@@ -28256,7 +28183,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;
 
-  /* "src/lxml/apihelpers.pxi":825
+  /* "src/lxml/apihelpers.pxi":820
  *     cdef list result = []
  *     c_node = element._c_node.children
  *     if c_node is not NULL:             # <<<<<<<<<<<<<<
@@ -28266,7 +28193,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectChildren(struct LxmlElement *__pyx
   __pyx_t_3 = ((__pyx_v_c_node != NULL) != 0);
   if (__pyx_t_3) {
 
-    /* "src/lxml/apihelpers.pxi":826
+    /* "src/lxml/apihelpers.pxi":821
  *     c_node = element._c_node.children
  *     if c_node is not NULL:
  *         if not _isElement(c_node):             # <<<<<<<<<<<<<<
@@ -28276,7 +28203,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) {
 
-      /* "src/lxml/apihelpers.pxi":827
+      /* "src/lxml/apihelpers.pxi":822
  *     if c_node is not NULL:
  *         if not _isElement(c_node):
  *             c_node = _nextElement(c_node)             # <<<<<<<<<<<<<<
@@ -28285,7 +28212,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectChildren(struct LxmlElement *__pyx
  */
       __pyx_v_c_node = __pyx_f_4lxml_5etree__nextElement(__pyx_v_c_node);
 
-      /* "src/lxml/apihelpers.pxi":826
+      /* "src/lxml/apihelpers.pxi":821
  *     c_node = element._c_node.children
  *     if c_node is not NULL:
  *         if not _isElement(c_node):             # <<<<<<<<<<<<<<
@@ -28294,7 +28221,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectChildren(struct LxmlElement *__pyx
  */
     }
 
-    /* "src/lxml/apihelpers.pxi":828
+    /* "src/lxml/apihelpers.pxi":823
  *         if not _isElement(c_node):
  *             c_node = _nextElement(c_node)
  *         while c_node is not NULL:             # <<<<<<<<<<<<<<
@@ -28305,7 +28232,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;
 
-      /* "src/lxml/apihelpers.pxi":829
+      /* "src/lxml/apihelpers.pxi":824
  *             c_node = _nextElement(c_node)
  *         while c_node is not NULL:
  *             result.append(_elementFactory(element._doc, c_node))             # <<<<<<<<<<<<<<
@@ -28314,13 +28241,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_ERR(5, 829, __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_ERR(5, 824, __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 == ((int)-1))) __PYX_ERR(5, 829, __pyx_L1_error)
+      __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_4); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(5, 824, __pyx_L1_error)
       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
-      /* "src/lxml/apihelpers.pxi":830
+      /* "src/lxml/apihelpers.pxi":825
  *         while c_node is not NULL:
  *             result.append(_elementFactory(element._doc, c_node))
  *             c_node = _nextElement(c_node)             # <<<<<<<<<<<<<<
@@ -28330,7 +28257,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectChildren(struct LxmlElement *__pyx
       __pyx_v_c_node = __pyx_f_4lxml_5etree__nextElement(__pyx_v_c_node);
     }
 
-    /* "src/lxml/apihelpers.pxi":825
+    /* "src/lxml/apihelpers.pxi":820
  *     cdef list result = []
  *     c_node = element._c_node.children
  *     if c_node is not NULL:             # <<<<<<<<<<<<<<
@@ -28339,7 +28266,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectChildren(struct LxmlElement *__pyx
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":831
+  /* "src/lxml/apihelpers.pxi":826
  *             result.append(_elementFactory(element._doc, c_node))
  *             c_node = _nextElement(c_node)
  *     return result             # <<<<<<<<<<<<<<
@@ -28351,7 +28278,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectChildren(struct LxmlElement *__pyx
   __pyx_r = __pyx_v_result;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":821
+  /* "src/lxml/apihelpers.pxi":816
  *     return 0
  * 
  * cdef _collectChildren(_Element element):             # <<<<<<<<<<<<<<
@@ -28372,7 +28299,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectChildren(struct LxmlElement *__pyx
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":833
+/* "src/lxml/apihelpers.pxi":828
  *     return result
  * 
  * cdef inline xmlNode* _findChild(xmlNode* c_node, Py_ssize_t index):             # <<<<<<<<<<<<<<
@@ -28386,7 +28313,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChild(xmlNode *__pyx_v_c
   int __pyx_t_1;
   __Pyx_RefNannySetupContext("_findChild", 0);
 
-  /* "src/lxml/apihelpers.pxi":834
+  /* "src/lxml/apihelpers.pxi":829
  * 
  * cdef inline xmlNode* _findChild(xmlNode* c_node, Py_ssize_t index):
  *     if index < 0:             # <<<<<<<<<<<<<<
@@ -28396,7 +28323,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) {
 
-    /* "src/lxml/apihelpers.pxi":835
+    /* "src/lxml/apihelpers.pxi":830
  * cdef inline xmlNode* _findChild(xmlNode* c_node, Py_ssize_t index):
  *     if index < 0:
  *         return _findChildBackwards(c_node, -index - 1)             # <<<<<<<<<<<<<<
@@ -28406,7 +28333,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChild(xmlNode *__pyx_v_c
     __pyx_r = __pyx_f_4lxml_5etree__findChildBackwards(__pyx_v_c_node, ((-__pyx_v_index) - 1));
     goto __pyx_L0;
 
-    /* "src/lxml/apihelpers.pxi":834
+    /* "src/lxml/apihelpers.pxi":829
  * 
  * cdef inline xmlNode* _findChild(xmlNode* c_node, Py_ssize_t index):
  *     if index < 0:             # <<<<<<<<<<<<<<
@@ -28415,7 +28342,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChild(xmlNode *__pyx_v_c
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":837
+  /* "src/lxml/apihelpers.pxi":832
  *         return _findChildBackwards(c_node, -index - 1)
  *     else:
  *         return _findChildForwards(c_node, index)             # <<<<<<<<<<<<<<
@@ -28427,7 +28354,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChild(xmlNode *__pyx_v_c
     goto __pyx_L0;
   }
 
-  /* "src/lxml/apihelpers.pxi":833
+  /* "src/lxml/apihelpers.pxi":828
  *     return result
  * 
  * cdef inline xmlNode* _findChild(xmlNode* c_node, Py_ssize_t index):             # <<<<<<<<<<<<<<
@@ -28441,7 +28368,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChild(xmlNode *__pyx_v_c
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":839
+/* "src/lxml/apihelpers.pxi":834
  *         return _findChildForwards(c_node, index)
  * 
  * cdef inline xmlNode* _findChildForwards(xmlNode* c_node, Py_ssize_t index):             # <<<<<<<<<<<<<<
@@ -28458,7 +28385,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChildForwards(xmlNode *_
   int __pyx_t_2;
   __Pyx_RefNannySetupContext("_findChildForwards", 0);
 
-  /* "src/lxml/apihelpers.pxi":844
+  /* "src/lxml/apihelpers.pxi":839
  *     cdef xmlNode* c_child
  *     cdef Py_ssize_t c
  *     c_child = c_node.children             # <<<<<<<<<<<<<<
@@ -28468,7 +28395,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;
 
-  /* "src/lxml/apihelpers.pxi":845
+  /* "src/lxml/apihelpers.pxi":840
  *     cdef Py_ssize_t c
  *     c_child = c_node.children
  *     c = 0             # <<<<<<<<<<<<<<
@@ -28477,7 +28404,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChildForwards(xmlNode *_
  */
   __pyx_v_c = 0;
 
-  /* "src/lxml/apihelpers.pxi":846
+  /* "src/lxml/apihelpers.pxi":841
  *     c_child = c_node.children
  *     c = 0
  *     while c_child is not NULL:             # <<<<<<<<<<<<<<
@@ -28488,7 +28415,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;
 
-    /* "src/lxml/apihelpers.pxi":847
+    /* "src/lxml/apihelpers.pxi":842
  *     c = 0
  *     while c_child is not NULL:
  *         if _isElement(c_child):             # <<<<<<<<<<<<<<
@@ -28498,7 +28425,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChildForwards(xmlNode *_
     __pyx_t_2 = (_isElement(__pyx_v_c_child) != 0);
     if (__pyx_t_2) {
 
-      /* "src/lxml/apihelpers.pxi":848
+      /* "src/lxml/apihelpers.pxi":843
  *     while c_child is not NULL:
  *         if _isElement(c_child):
  *             if c == index:             # <<<<<<<<<<<<<<
@@ -28508,7 +28435,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) {
 
-        /* "src/lxml/apihelpers.pxi":849
+        /* "src/lxml/apihelpers.pxi":844
  *         if _isElement(c_child):
  *             if c == index:
  *                 return c_child             # <<<<<<<<<<<<<<
@@ -28518,7 +28445,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChildForwards(xmlNode *_
         __pyx_r = __pyx_v_c_child;
         goto __pyx_L0;
 
-        /* "src/lxml/apihelpers.pxi":848
+        /* "src/lxml/apihelpers.pxi":843
  *     while c_child is not NULL:
  *         if _isElement(c_child):
  *             if c == index:             # <<<<<<<<<<<<<<
@@ -28527,7 +28454,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChildForwards(xmlNode *_
  */
       }
 
-      /* "src/lxml/apihelpers.pxi":850
+      /* "src/lxml/apihelpers.pxi":845
  *             if c == index:
  *                 return c_child
  *             c += 1             # <<<<<<<<<<<<<<
@@ -28536,7 +28463,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChildForwards(xmlNode *_
  */
       __pyx_v_c = (__pyx_v_c + 1);
 
-      /* "src/lxml/apihelpers.pxi":847
+      /* "src/lxml/apihelpers.pxi":842
  *     c = 0
  *     while c_child is not NULL:
  *         if _isElement(c_child):             # <<<<<<<<<<<<<<
@@ -28545,7 +28472,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChildForwards(xmlNode *_
  */
     }
 
-    /* "src/lxml/apihelpers.pxi":851
+    /* "src/lxml/apihelpers.pxi":846
  *                 return c_child
  *             c += 1
  *         c_child = c_child.next             # <<<<<<<<<<<<<<
@@ -28556,7 +28483,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChildForwards(xmlNode *_
     __pyx_v_c_child = __pyx_t_1;
   }
 
-  /* "src/lxml/apihelpers.pxi":852
+  /* "src/lxml/apihelpers.pxi":847
  *             c += 1
  *         c_child = c_child.next
  *     return NULL             # <<<<<<<<<<<<<<
@@ -28566,7 +28493,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChildForwards(xmlNode *_
   __pyx_r = NULL;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":839
+  /* "src/lxml/apihelpers.pxi":834
  *         return _findChildForwards(c_node, index)
  * 
  * cdef inline xmlNode* _findChildForwards(xmlNode* c_node, Py_ssize_t index):             # <<<<<<<<<<<<<<
@@ -28580,7 +28507,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChildForwards(xmlNode *_
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":854
+/* "src/lxml/apihelpers.pxi":849
  *     return NULL
  * 
  * cdef inline xmlNode* _findChildBackwards(xmlNode* c_node, Py_ssize_t index):             # <<<<<<<<<<<<<<
@@ -28597,7 +28524,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChildBackwards(xmlNode *
   int __pyx_t_2;
   __Pyx_RefNannySetupContext("_findChildBackwards", 0);
 
-  /* "src/lxml/apihelpers.pxi":860
+  /* "src/lxml/apihelpers.pxi":855
  *     cdef xmlNode* c_child
  *     cdef Py_ssize_t c
  *     c_child = c_node.last             # <<<<<<<<<<<<<<
@@ -28607,7 +28534,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;
 
-  /* "src/lxml/apihelpers.pxi":861
+  /* "src/lxml/apihelpers.pxi":856
  *     cdef Py_ssize_t c
  *     c_child = c_node.last
  *     c = 0             # <<<<<<<<<<<<<<
@@ -28616,7 +28543,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChildBackwards(xmlNode *
  */
   __pyx_v_c = 0;
 
-  /* "src/lxml/apihelpers.pxi":862
+  /* "src/lxml/apihelpers.pxi":857
  *     c_child = c_node.last
  *     c = 0
  *     while c_child is not NULL:             # <<<<<<<<<<<<<<
@@ -28627,7 +28554,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;
 
-    /* "src/lxml/apihelpers.pxi":863
+    /* "src/lxml/apihelpers.pxi":858
  *     c = 0
  *     while c_child is not NULL:
  *         if _isElement(c_child):             # <<<<<<<<<<<<<<
@@ -28637,7 +28564,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChildBackwards(xmlNode *
     __pyx_t_2 = (_isElement(__pyx_v_c_child) != 0);
     if (__pyx_t_2) {
 
-      /* "src/lxml/apihelpers.pxi":864
+      /* "src/lxml/apihelpers.pxi":859
  *     while c_child is not NULL:
  *         if _isElement(c_child):
  *             if c == index:             # <<<<<<<<<<<<<<
@@ -28647,7 +28574,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) {
 
-        /* "src/lxml/apihelpers.pxi":865
+        /* "src/lxml/apihelpers.pxi":860
  *         if _isElement(c_child):
  *             if c == index:
  *                 return c_child             # <<<<<<<<<<<<<<
@@ -28657,7 +28584,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChildBackwards(xmlNode *
         __pyx_r = __pyx_v_c_child;
         goto __pyx_L0;
 
-        /* "src/lxml/apihelpers.pxi":864
+        /* "src/lxml/apihelpers.pxi":859
  *     while c_child is not NULL:
  *         if _isElement(c_child):
  *             if c == index:             # <<<<<<<<<<<<<<
@@ -28666,7 +28593,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChildBackwards(xmlNode *
  */
       }
 
-      /* "src/lxml/apihelpers.pxi":866
+      /* "src/lxml/apihelpers.pxi":861
  *             if c == index:
  *                 return c_child
  *             c += 1             # <<<<<<<<<<<<<<
@@ -28675,7 +28602,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChildBackwards(xmlNode *
  */
       __pyx_v_c = (__pyx_v_c + 1);
 
-      /* "src/lxml/apihelpers.pxi":863
+      /* "src/lxml/apihelpers.pxi":858
  *     c = 0
  *     while c_child is not NULL:
  *         if _isElement(c_child):             # <<<<<<<<<<<<<<
@@ -28684,7 +28611,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChildBackwards(xmlNode *
  */
     }
 
-    /* "src/lxml/apihelpers.pxi":867
+    /* "src/lxml/apihelpers.pxi":862
  *                 return c_child
  *             c += 1
  *         c_child = c_child.prev             # <<<<<<<<<<<<<<
@@ -28695,7 +28622,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChildBackwards(xmlNode *
     __pyx_v_c_child = __pyx_t_1;
   }
 
-  /* "src/lxml/apihelpers.pxi":868
+  /* "src/lxml/apihelpers.pxi":863
  *             c += 1
  *         c_child = c_child.prev
  *     return NULL             # <<<<<<<<<<<<<<
@@ -28705,7 +28632,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChildBackwards(xmlNode *
   __pyx_r = NULL;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":854
+  /* "src/lxml/apihelpers.pxi":849
  *     return NULL
  * 
  * cdef inline xmlNode* _findChildBackwards(xmlNode* c_node, Py_ssize_t index):             # <<<<<<<<<<<<<<
@@ -28719,7 +28646,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChildBackwards(xmlNode *
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":870
+/* "src/lxml/apihelpers.pxi":865
  *     return NULL
  * 
  * cdef inline xmlNode* _textNodeOrSkip(xmlNode* c_node) nogil:             # <<<<<<<<<<<<<<
@@ -28732,7 +28659,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__textNodeOrSkip(xmlNode *__py
   int __pyx_t_1;
   xmlNode *__pyx_t_2;
 
-  /* "src/lxml/apihelpers.pxi":877
+  /* "src/lxml/apihelpers.pxi":872
  *     nodes.
  *     """
  *     while c_node is not NULL:             # <<<<<<<<<<<<<<
@@ -28743,7 +28670,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;
 
-    /* "src/lxml/apihelpers.pxi":878
+    /* "src/lxml/apihelpers.pxi":873
  *     """
  *     while c_node is not NULL:
  *         if c_node.type == tree.XML_TEXT_NODE or \             # <<<<<<<<<<<<<<
@@ -28754,7 +28681,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__textNodeOrSkip(xmlNode *__py
       case XML_TEXT_NODE:
       case XML_CDATA_SECTION_NODE:
 
-      /* "src/lxml/apihelpers.pxi":880
+      /* "src/lxml/apihelpers.pxi":875
  *         if c_node.type == tree.XML_TEXT_NODE or \
  *                c_node.type == tree.XML_CDATA_SECTION_NODE:
  *             return c_node             # <<<<<<<<<<<<<<
@@ -28764,7 +28691,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__textNodeOrSkip(xmlNode *__py
       __pyx_r = __pyx_v_c_node;
       goto __pyx_L0;
 
-      /* "src/lxml/apihelpers.pxi":878
+      /* "src/lxml/apihelpers.pxi":873
  *     """
  *     while c_node is not NULL:
  *         if c_node.type == tree.XML_TEXT_NODE or \             # <<<<<<<<<<<<<<
@@ -28774,7 +28701,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__textNodeOrSkip(xmlNode *__py
       break;
       case XML_XINCLUDE_START:
 
-      /* "src/lxml/apihelpers.pxi":881
+      /* "src/lxml/apihelpers.pxi":876
  *                c_node.type == tree.XML_CDATA_SECTION_NODE:
  *             return c_node
  *         elif c_node.type == tree.XML_XINCLUDE_START or \             # <<<<<<<<<<<<<<
@@ -28783,7 +28710,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__textNodeOrSkip(xmlNode *__py
  */
       case XML_XINCLUDE_END:
 
-      /* "src/lxml/apihelpers.pxi":883
+      /* "src/lxml/apihelpers.pxi":878
  *         elif c_node.type == tree.XML_XINCLUDE_START or \
  *                  c_node.type == tree.XML_XINCLUDE_END:
  *             c_node = c_node.next             # <<<<<<<<<<<<<<
@@ -28793,7 +28720,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__textNodeOrSkip(xmlNode *__py
       __pyx_t_2 = __pyx_v_c_node->next;
       __pyx_v_c_node = __pyx_t_2;
 
-      /* "src/lxml/apihelpers.pxi":881
+      /* "src/lxml/apihelpers.pxi":876
  *                c_node.type == tree.XML_CDATA_SECTION_NODE:
  *             return c_node
  *         elif c_node.type == tree.XML_XINCLUDE_START or \             # <<<<<<<<<<<<<<
@@ -28803,7 +28730,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__textNodeOrSkip(xmlNode *__py
       break;
       default:
 
-      /* "src/lxml/apihelpers.pxi":885
+      /* "src/lxml/apihelpers.pxi":880
  *             c_node = c_node.next
  *         else:
  *             return NULL             # <<<<<<<<<<<<<<
@@ -28816,7 +28743,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__textNodeOrSkip(xmlNode *__py
     }
   }
 
-  /* "src/lxml/apihelpers.pxi":886
+  /* "src/lxml/apihelpers.pxi":881
  *         else:
  *             return NULL
  *     return NULL             # <<<<<<<<<<<<<<
@@ -28826,7 +28753,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__textNodeOrSkip(xmlNode *__py
   __pyx_r = NULL;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":870
+  /* "src/lxml/apihelpers.pxi":865
  *     return NULL
  * 
  * cdef inline xmlNode* _textNodeOrSkip(xmlNode* c_node) nogil:             # <<<<<<<<<<<<<<
@@ -28839,7 +28766,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__textNodeOrSkip(xmlNode *__py
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":888
+/* "src/lxml/apihelpers.pxi":883
  *     return NULL
  * 
  * cdef inline xmlNode* _nextElement(xmlNode* c_node):             # <<<<<<<<<<<<<<
@@ -28854,7 +28781,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__nextElement(xmlNode *__pyx_v
   xmlNode *__pyx_t_2;
   __Pyx_RefNannySetupContext("_nextElement", 0);
 
-  /* "src/lxml/apihelpers.pxi":891
+  /* "src/lxml/apihelpers.pxi":886
  *     u"""Given a node, find the next sibling that is an element.
  *     """
  *     if c_node is NULL:             # <<<<<<<<<<<<<<
@@ -28864,7 +28791,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) {
 
-    /* "src/lxml/apihelpers.pxi":892
+    /* "src/lxml/apihelpers.pxi":887
  *     """
  *     if c_node is NULL:
  *         return NULL             # <<<<<<<<<<<<<<
@@ -28874,7 +28801,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__nextElement(xmlNode *__pyx_v
     __pyx_r = NULL;
     goto __pyx_L0;
 
-    /* "src/lxml/apihelpers.pxi":891
+    /* "src/lxml/apihelpers.pxi":886
  *     u"""Given a node, find the next sibling that is an element.
  *     """
  *     if c_node is NULL:             # <<<<<<<<<<<<<<
@@ -28883,7 +28810,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__nextElement(xmlNode *__pyx_v
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":893
+  /* "src/lxml/apihelpers.pxi":888
  *     if c_node is NULL:
  *         return NULL
  *     c_node = c_node.next             # <<<<<<<<<<<<<<
@@ -28893,7 +28820,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;
 
-  /* "src/lxml/apihelpers.pxi":894
+  /* "src/lxml/apihelpers.pxi":889
  *         return NULL
  *     c_node = c_node.next
  *     while c_node is not NULL:             # <<<<<<<<<<<<<<
@@ -28904,7 +28831,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;
 
-    /* "src/lxml/apihelpers.pxi":895
+    /* "src/lxml/apihelpers.pxi":890
  *     c_node = c_node.next
  *     while c_node is not NULL:
  *         if _isElement(c_node):             # <<<<<<<<<<<<<<
@@ -28914,7 +28841,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) {
 
-      /* "src/lxml/apihelpers.pxi":896
+      /* "src/lxml/apihelpers.pxi":891
  *     while c_node is not NULL:
  *         if _isElement(c_node):
  *             return c_node             # <<<<<<<<<<<<<<
@@ -28924,7 +28851,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__nextElement(xmlNode *__pyx_v
       __pyx_r = __pyx_v_c_node;
       goto __pyx_L0;
 
-      /* "src/lxml/apihelpers.pxi":895
+      /* "src/lxml/apihelpers.pxi":890
  *     c_node = c_node.next
  *     while c_node is not NULL:
  *         if _isElement(c_node):             # <<<<<<<<<<<<<<
@@ -28933,7 +28860,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__nextElement(xmlNode *__pyx_v
  */
     }
 
-    /* "src/lxml/apihelpers.pxi":897
+    /* "src/lxml/apihelpers.pxi":892
  *         if _isElement(c_node):
  *             return c_node
  *         c_node = c_node.next             # <<<<<<<<<<<<<<
@@ -28944,7 +28871,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__nextElement(xmlNode *__pyx_v
     __pyx_v_c_node = __pyx_t_2;
   }
 
-  /* "src/lxml/apihelpers.pxi":898
+  /* "src/lxml/apihelpers.pxi":893
  *             return c_node
  *         c_node = c_node.next
  *     return NULL             # <<<<<<<<<<<<<<
@@ -28954,7 +28881,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__nextElement(xmlNode *__pyx_v
   __pyx_r = NULL;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":888
+  /* "src/lxml/apihelpers.pxi":883
  *     return NULL
  * 
  * cdef inline xmlNode* _nextElement(xmlNode* c_node):             # <<<<<<<<<<<<<<
@@ -28968,7 +28895,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__nextElement(xmlNode *__pyx_v
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":900
+/* "src/lxml/apihelpers.pxi":895
  *     return NULL
  * 
  * cdef inline xmlNode* _previousElement(xmlNode* c_node):             # <<<<<<<<<<<<<<
@@ -28983,7 +28910,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__previousElement(xmlNode *__p
   xmlNode *__pyx_t_2;
   __Pyx_RefNannySetupContext("_previousElement", 0);
 
-  /* "src/lxml/apihelpers.pxi":903
+  /* "src/lxml/apihelpers.pxi":898
  *     u"""Given a node, find the next sibling that is an element.
  *     """
  *     if c_node is NULL:             # <<<<<<<<<<<<<<
@@ -28993,7 +28920,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) {
 
-    /* "src/lxml/apihelpers.pxi":904
+    /* "src/lxml/apihelpers.pxi":899
  *     """
  *     if c_node is NULL:
  *         return NULL             # <<<<<<<<<<<<<<
@@ -29003,7 +28930,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__previousElement(xmlNode *__p
     __pyx_r = NULL;
     goto __pyx_L0;
 
-    /* "src/lxml/apihelpers.pxi":903
+    /* "src/lxml/apihelpers.pxi":898
  *     u"""Given a node, find the next sibling that is an element.
  *     """
  *     if c_node is NULL:             # <<<<<<<<<<<<<<
@@ -29012,7 +28939,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__previousElement(xmlNode *__p
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":905
+  /* "src/lxml/apihelpers.pxi":900
  *     if c_node is NULL:
  *         return NULL
  *     c_node = c_node.prev             # <<<<<<<<<<<<<<
@@ -29022,7 +28949,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;
 
-  /* "src/lxml/apihelpers.pxi":906
+  /* "src/lxml/apihelpers.pxi":901
  *         return NULL
  *     c_node = c_node.prev
  *     while c_node is not NULL:             # <<<<<<<<<<<<<<
@@ -29033,7 +28960,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;
 
-    /* "src/lxml/apihelpers.pxi":907
+    /* "src/lxml/apihelpers.pxi":902
  *     c_node = c_node.prev
  *     while c_node is not NULL:
  *         if _isElement(c_node):             # <<<<<<<<<<<<<<
@@ -29043,7 +28970,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) {
 
-      /* "src/lxml/apihelpers.pxi":908
+      /* "src/lxml/apihelpers.pxi":903
  *     while c_node is not NULL:
  *         if _isElement(c_node):
  *             return c_node             # <<<<<<<<<<<<<<
@@ -29053,7 +28980,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__previousElement(xmlNode *__p
       __pyx_r = __pyx_v_c_node;
       goto __pyx_L0;
 
-      /* "src/lxml/apihelpers.pxi":907
+      /* "src/lxml/apihelpers.pxi":902
  *     c_node = c_node.prev
  *     while c_node is not NULL:
  *         if _isElement(c_node):             # <<<<<<<<<<<<<<
@@ -29062,7 +28989,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__previousElement(xmlNode *__p
  */
     }
 
-    /* "src/lxml/apihelpers.pxi":909
+    /* "src/lxml/apihelpers.pxi":904
  *         if _isElement(c_node):
  *             return c_node
  *         c_node = c_node.prev             # <<<<<<<<<<<<<<
@@ -29073,7 +29000,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__previousElement(xmlNode *__p
     __pyx_v_c_node = __pyx_t_2;
   }
 
-  /* "src/lxml/apihelpers.pxi":910
+  /* "src/lxml/apihelpers.pxi":905
  *             return c_node
  *         c_node = c_node.prev
  *     return NULL             # <<<<<<<<<<<<<<
@@ -29083,7 +29010,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__previousElement(xmlNode *__p
   __pyx_r = NULL;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":900
+  /* "src/lxml/apihelpers.pxi":895
  *     return NULL
  * 
  * cdef inline xmlNode* _previousElement(xmlNode* c_node):             # <<<<<<<<<<<<<<
@@ -29097,7 +29024,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__previousElement(xmlNode *__p
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":912
+/* "src/lxml/apihelpers.pxi":907
  *     return NULL
  * 
  * cdef inline xmlNode* _parentElement(xmlNode* c_node):             # <<<<<<<<<<<<<<
@@ -29113,7 +29040,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__parentElement(xmlNode *__pyx
   xmlNode *__pyx_t_3;
   __Pyx_RefNannySetupContext("_parentElement", 0);
 
-  /* "src/lxml/apihelpers.pxi":914
+  /* "src/lxml/apihelpers.pxi":909
  * 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):             # <<<<<<<<<<<<<<
@@ -29131,7 +29058,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__parentElement(xmlNode *__pyx
   __pyx_L4_bool_binop_done:;
   if (__pyx_t_1) {
 
-    /* "src/lxml/apihelpers.pxi":915
+    /* "src/lxml/apihelpers.pxi":910
  *     u"Given a node, find the parent element."
  *     if c_node is NULL or not _isElement(c_node):
  *         return NULL             # <<<<<<<<<<<<<<
@@ -29141,7 +29068,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__parentElement(xmlNode *__pyx
     __pyx_r = NULL;
     goto __pyx_L0;
 
-    /* "src/lxml/apihelpers.pxi":914
+    /* "src/lxml/apihelpers.pxi":909
  * 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):             # <<<<<<<<<<<<<<
@@ -29150,7 +29077,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__parentElement(xmlNode *__pyx
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":916
+  /* "src/lxml/apihelpers.pxi":911
  *     if c_node is NULL or not _isElement(c_node):
  *         return NULL
  *     c_node = c_node.parent             # <<<<<<<<<<<<<<
@@ -29160,7 +29087,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__parentElement(xmlNode *__pyx
   __pyx_t_3 = __pyx_v_c_node->parent;
   __pyx_v_c_node = __pyx_t_3;
 
-  /* "src/lxml/apihelpers.pxi":917
+  /* "src/lxml/apihelpers.pxi":912
  *         return NULL
  *     c_node = c_node.parent
  *     if c_node is NULL or not _isElement(c_node):             # <<<<<<<<<<<<<<
@@ -29178,7 +29105,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__parentElement(xmlNode *__pyx
   __pyx_L7_bool_binop_done:;
   if (__pyx_t_1) {
 
-    /* "src/lxml/apihelpers.pxi":918
+    /* "src/lxml/apihelpers.pxi":913
  *     c_node = c_node.parent
  *     if c_node is NULL or not _isElement(c_node):
  *         return NULL             # <<<<<<<<<<<<<<
@@ -29188,7 +29115,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__parentElement(xmlNode *__pyx
     __pyx_r = NULL;
     goto __pyx_L0;
 
-    /* "src/lxml/apihelpers.pxi":917
+    /* "src/lxml/apihelpers.pxi":912
  *         return NULL
  *     c_node = c_node.parent
  *     if c_node is NULL or not _isElement(c_node):             # <<<<<<<<<<<<<<
@@ -29197,7 +29124,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__parentElement(xmlNode *__pyx
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":919
+  /* "src/lxml/apihelpers.pxi":914
  *     if c_node is NULL or not _isElement(c_node):
  *         return NULL
  *     return c_node             # <<<<<<<<<<<<<<
@@ -29207,7 +29134,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__parentElement(xmlNode *__pyx
   __pyx_r = __pyx_v_c_node;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":912
+  /* "src/lxml/apihelpers.pxi":907
  *     return NULL
  * 
  * cdef inline xmlNode* _parentElement(xmlNode* c_node):             # <<<<<<<<<<<<<<
@@ -29221,7 +29148,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__parentElement(xmlNode *__pyx
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":921
+/* "src/lxml/apihelpers.pxi":916
  *     return c_node
  * 
  * cdef inline bint _tagMatches(xmlNode* c_node, const_xmlChar* c_href, const_xmlChar* c_name):             # <<<<<<<<<<<<<<
@@ -29237,7 +29164,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
   int __pyx_t_2;
   __Pyx_RefNannySetupContext("_tagMatches", 0);
 
-  /* "src/lxml/apihelpers.pxi":935
+  /* "src/lxml/apihelpers.pxi":930
  *     * its name string equals the c_name string
  *     """
  *     if c_node is NULL:             # <<<<<<<<<<<<<<
@@ -29247,7 +29174,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) {
 
-    /* "src/lxml/apihelpers.pxi":936
+    /* "src/lxml/apihelpers.pxi":931
  *     """
  *     if c_node is NULL:
  *         return 0             # <<<<<<<<<<<<<<
@@ -29257,7 +29184,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
     __pyx_r = 0;
     goto __pyx_L0;
 
-    /* "src/lxml/apihelpers.pxi":935
+    /* "src/lxml/apihelpers.pxi":930
  *     * its name string equals the c_name string
  *     """
  *     if c_node is NULL:             # <<<<<<<<<<<<<<
@@ -29266,7 +29193,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":937
+  /* "src/lxml/apihelpers.pxi":932
  *     if c_node is NULL:
  *         return 0
  *     if c_node.type != tree.XML_ELEMENT_NODE:             # <<<<<<<<<<<<<<
@@ -29276,7 +29203,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) {
 
-    /* "src/lxml/apihelpers.pxi":939
+    /* "src/lxml/apihelpers.pxi":934
  *     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             # <<<<<<<<<<<<<<
@@ -29295,7 +29222,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
     __pyx_r = __pyx_t_1;
     goto __pyx_L0;
 
-    /* "src/lxml/apihelpers.pxi":937
+    /* "src/lxml/apihelpers.pxi":932
  *     if c_node is NULL:
  *         return 0
  *     if c_node.type != tree.XML_ELEMENT_NODE:             # <<<<<<<<<<<<<<
@@ -29304,7 +29231,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":940
+  /* "src/lxml/apihelpers.pxi":935
  *         # not an element, only succeed if we match everything
  *         return c_name is NULL and c_href is NULL
  *     if c_name is NULL:             # <<<<<<<<<<<<<<
@@ -29314,7 +29241,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
   __pyx_t_1 = ((__pyx_v_c_name == NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "src/lxml/apihelpers.pxi":941
+    /* "src/lxml/apihelpers.pxi":936
  *         return c_name is NULL and c_href is NULL
  *     if c_name is NULL:
  *         if c_href is NULL:             # <<<<<<<<<<<<<<
@@ -29324,7 +29251,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
     __pyx_t_1 = ((__pyx_v_c_href == NULL) != 0);
     if (__pyx_t_1) {
 
-      /* "src/lxml/apihelpers.pxi":943
+      /* "src/lxml/apihelpers.pxi":938
  *         if c_href is NULL:
  *             # always match
  *             return 1             # <<<<<<<<<<<<<<
@@ -29334,7 +29261,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
       __pyx_r = 1;
       goto __pyx_L0;
 
-      /* "src/lxml/apihelpers.pxi":941
+      /* "src/lxml/apihelpers.pxi":936
  *         return c_name is NULL and c_href is NULL
  *     if c_name is NULL:
  *         if c_href is NULL:             # <<<<<<<<<<<<<<
@@ -29343,7 +29270,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
  */
     }
 
-    /* "src/lxml/apihelpers.pxi":945
+    /* "src/lxml/apihelpers.pxi":940
  *             return 1
  *         else:
  *             c_node_href = _getNs(c_node)             # <<<<<<<<<<<<<<
@@ -29353,7 +29280,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
     /*else*/ {
       __pyx_v_c_node_href = _getNs(__pyx_v_c_node);
 
-      /* "src/lxml/apihelpers.pxi":946
+      /* "src/lxml/apihelpers.pxi":941
  *         else:
  *             c_node_href = _getNs(c_node)
  *             if c_node_href is NULL:             # <<<<<<<<<<<<<<
@@ -29363,7 +29290,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) {
 
-        /* "src/lxml/apihelpers.pxi":947
+        /* "src/lxml/apihelpers.pxi":942
  *             c_node_href = _getNs(c_node)
  *             if c_node_href is NULL:
  *                 return c_href[0] == c'\0'             # <<<<<<<<<<<<<<
@@ -29373,7 +29300,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
         __pyx_r = ((__pyx_v_c_href[0]) == '\x00');
         goto __pyx_L0;
 
-        /* "src/lxml/apihelpers.pxi":946
+        /* "src/lxml/apihelpers.pxi":941
  *         else:
  *             c_node_href = _getNs(c_node)
  *             if c_node_href is NULL:             # <<<<<<<<<<<<<<
@@ -29382,7 +29309,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
  */
       }
 
-      /* "src/lxml/apihelpers.pxi":949
+      /* "src/lxml/apihelpers.pxi":944
  *                 return c_href[0] == c'\0'
  *             else:
  *                 return tree.xmlStrcmp(c_node_href, c_href) == 0             # <<<<<<<<<<<<<<
@@ -29395,7 +29322,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
       }
     }
 
-    /* "src/lxml/apihelpers.pxi":940
+    /* "src/lxml/apihelpers.pxi":935
  *         # not an element, only succeed if we match everything
  *         return c_name is NULL and c_href is NULL
  *     if c_name is NULL:             # <<<<<<<<<<<<<<
@@ -29404,7 +29331,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":950
+  /* "src/lxml/apihelpers.pxi":945
  *             else:
  *                 return tree.xmlStrcmp(c_node_href, c_href) == 0
  *     elif c_href is NULL:             # <<<<<<<<<<<<<<
@@ -29414,7 +29341,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
   __pyx_t_1 = ((__pyx_v_c_href == NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "src/lxml/apihelpers.pxi":951
+    /* "src/lxml/apihelpers.pxi":946
  *                 return tree.xmlStrcmp(c_node_href, c_href) == 0
  *     elif c_href is NULL:
  *         if _getNs(c_node) is not NULL:             # <<<<<<<<<<<<<<
@@ -29424,7 +29351,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
     __pyx_t_1 = ((_getNs(__pyx_v_c_node) != NULL) != 0);
     if (__pyx_t_1) {
 
-      /* "src/lxml/apihelpers.pxi":952
+      /* "src/lxml/apihelpers.pxi":947
  *     elif c_href is NULL:
  *         if _getNs(c_node) is not NULL:
  *             return 0             # <<<<<<<<<<<<<<
@@ -29434,7 +29361,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
       __pyx_r = 0;
       goto __pyx_L0;
 
-      /* "src/lxml/apihelpers.pxi":951
+      /* "src/lxml/apihelpers.pxi":946
  *                 return tree.xmlStrcmp(c_node_href, c_href) == 0
  *     elif c_href is NULL:
  *         if _getNs(c_node) is not NULL:             # <<<<<<<<<<<<<<
@@ -29443,7 +29370,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
  */
     }
 
-    /* "src/lxml/apihelpers.pxi":953
+    /* "src/lxml/apihelpers.pxi":948
  *         if _getNs(c_node) is not NULL:
  *             return 0
  *         return c_node.name == c_name or tree.xmlStrcmp(c_node.name, c_name) == 0             # <<<<<<<<<<<<<<
@@ -29462,7 +29389,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
     __pyx_r = __pyx_t_1;
     goto __pyx_L0;
 
-    /* "src/lxml/apihelpers.pxi":950
+    /* "src/lxml/apihelpers.pxi":945
  *             else:
  *                 return tree.xmlStrcmp(c_node_href, c_href) == 0
  *     elif c_href is NULL:             # <<<<<<<<<<<<<<
@@ -29471,7 +29398,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":954
+  /* "src/lxml/apihelpers.pxi":949
  *             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:             # <<<<<<<<<<<<<<
@@ -29489,7 +29416,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
   __pyx_L13_bool_binop_done:;
   if (__pyx_t_1) {
 
-    /* "src/lxml/apihelpers.pxi":955
+    /* "src/lxml/apihelpers.pxi":950
  *         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)             # <<<<<<<<<<<<<<
@@ -29498,7 +29425,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);
 
-    /* "src/lxml/apihelpers.pxi":956
+    /* "src/lxml/apihelpers.pxi":951
  *     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:             # <<<<<<<<<<<<<<
@@ -29508,7 +29435,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) {
 
-      /* "src/lxml/apihelpers.pxi":957
+      /* "src/lxml/apihelpers.pxi":952
  *         c_node_href = _getNs(c_node)
  *         if c_node_href is NULL:
  *             return c_href[0] == c'\0'             # <<<<<<<<<<<<<<
@@ -29518,7 +29445,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
       __pyx_r = ((__pyx_v_c_href[0]) == '\x00');
       goto __pyx_L0;
 
-      /* "src/lxml/apihelpers.pxi":956
+      /* "src/lxml/apihelpers.pxi":951
  *     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:             # <<<<<<<<<<<<<<
@@ -29527,7 +29454,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
  */
     }
 
-    /* "src/lxml/apihelpers.pxi":959
+    /* "src/lxml/apihelpers.pxi":954
  *             return c_href[0] == c'\0'
  *         else:
  *             return tree.xmlStrcmp(c_node_href, c_href) == 0             # <<<<<<<<<<<<<<
@@ -29539,7 +29466,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
       goto __pyx_L0;
     }
 
-    /* "src/lxml/apihelpers.pxi":954
+    /* "src/lxml/apihelpers.pxi":949
  *             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:             # <<<<<<<<<<<<<<
@@ -29548,7 +29475,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":961
+  /* "src/lxml/apihelpers.pxi":956
  *             return tree.xmlStrcmp(c_node_href, c_href) == 0
  *     else:
  *         return 0             # <<<<<<<<<<<<<<
@@ -29560,7 +29487,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
     goto __pyx_L0;
   }
 
-  /* "src/lxml/apihelpers.pxi":921
+  /* "src/lxml/apihelpers.pxi":916
  *     return c_node
  * 
  * cdef inline bint _tagMatches(xmlNode* c_node, const_xmlChar* c_href, const_xmlChar* c_name):             # <<<<<<<<<<<<<<
@@ -29574,7 +29501,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":963
+/* "src/lxml/apihelpers.pxi":958
  *         return 0
  * 
  * cdef inline bint _tagMatchesExactly(xmlNode* c_node, qname* c_qname):             # <<<<<<<<<<<<<<
@@ -29587,7 +29514,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatchesExactly(xmlNode *__pyx_
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("_tagMatchesExactly", 0);
 
-  /* "src/lxml/apihelpers.pxi":981
+  /* "src/lxml/apihelpers.pxi":976
  *     * its name string points to the same address (!) as c_name
  *     """
  *     return _nsTagMatchesExactly(_getNs(c_node), c_node.name, c_qname)             # <<<<<<<<<<<<<<
@@ -29597,7 +29524,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;
 
-  /* "src/lxml/apihelpers.pxi":963
+  /* "src/lxml/apihelpers.pxi":958
  *         return 0
  * 
  * cdef inline bint _tagMatchesExactly(xmlNode* c_node, qname* c_qname):             # <<<<<<<<<<<<<<
@@ -29611,7 +29538,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatchesExactly(xmlNode *__pyx_
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":983
+/* "src/lxml/apihelpers.pxi":978
  *     return _nsTagMatchesExactly(_getNs(c_node), c_node.name, c_qname)
  * 
  * cdef inline bint _nsTagMatchesExactly(const_xmlChar* c_node_href,             # <<<<<<<<<<<<<<
@@ -29627,7 +29554,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__nsTagMatchesExactly(const xmlChar
   int __pyx_t_2;
   __Pyx_RefNannySetupContext("_nsTagMatchesExactly", 0);
 
-  /* "src/lxml/apihelpers.pxi":1004
+  /* "src/lxml/apihelpers.pxi":999
  *     """
  *     cdef char* c_href
  *     if c_qname.c_name is not NULL and c_qname.c_name is not c_node_name:             # <<<<<<<<<<<<<<
@@ -29645,7 +29572,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__nsTagMatchesExactly(const xmlChar
   __pyx_L4_bool_binop_done:;
   if (__pyx_t_1) {
 
-    /* "src/lxml/apihelpers.pxi":1005
+    /* "src/lxml/apihelpers.pxi":1000
  *     cdef char* c_href
  *     if c_qname.c_name is not NULL and c_qname.c_name is not c_node_name:
  *         return 0             # <<<<<<<<<<<<<<
@@ -29655,7 +29582,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__nsTagMatchesExactly(const xmlChar
     __pyx_r = 0;
     goto __pyx_L0;
 
-    /* "src/lxml/apihelpers.pxi":1004
+    /* "src/lxml/apihelpers.pxi":999
  *     """
  *     cdef char* c_href
  *     if c_qname.c_name is not NULL and c_qname.c_name is not c_node_name:             # <<<<<<<<<<<<<<
@@ -29664,7 +29591,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__nsTagMatchesExactly(const xmlChar
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":1006
+  /* "src/lxml/apihelpers.pxi":1001
  *     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:             # <<<<<<<<<<<<<<
@@ -29674,7 +29601,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__nsTagMatchesExactly(const xmlChar
   __pyx_t_1 = ((__pyx_v_c_qname->href == NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "src/lxml/apihelpers.pxi":1007
+    /* "src/lxml/apihelpers.pxi":1002
  *         return 0
  *     if c_qname.href is NULL:
  *         return 1             # <<<<<<<<<<<<<<
@@ -29684,7 +29611,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__nsTagMatchesExactly(const xmlChar
     __pyx_r = 1;
     goto __pyx_L0;
 
-    /* "src/lxml/apihelpers.pxi":1006
+    /* "src/lxml/apihelpers.pxi":1001
  *     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:             # <<<<<<<<<<<<<<
@@ -29693,7 +29620,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__nsTagMatchesExactly(const xmlChar
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":1008
+  /* "src/lxml/apihelpers.pxi":1003
  *     if c_qname.href is NULL:
  *         return 1
  *     c_href = python.__cstr(c_qname.href)             # <<<<<<<<<<<<<<
@@ -29702,7 +29629,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__nsTagMatchesExactly(const xmlChar
  */
   __pyx_v_c_href = PyBytes_AS_STRING(__pyx_v_c_qname->href);
 
-  /* "src/lxml/apihelpers.pxi":1009
+  /* "src/lxml/apihelpers.pxi":1004
  *         return 1
  *     c_href = python.__cstr(c_qname.href)
  *     if c_href[0] == '\0':             # <<<<<<<<<<<<<<
@@ -29712,7 +29639,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__nsTagMatchesExactly(const xmlChar
   __pyx_t_1 = (((__pyx_v_c_href[0]) == '\x00') != 0);
   if (__pyx_t_1) {
 
-    /* "src/lxml/apihelpers.pxi":1010
+    /* "src/lxml/apihelpers.pxi":1005
  *     c_href = python.__cstr(c_qname.href)
  *     if c_href[0] == '\0':
  *         return c_node_href is NULL or c_node_href[0] == '\0'             # <<<<<<<<<<<<<<
@@ -29731,7 +29658,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__nsTagMatchesExactly(const xmlChar
     __pyx_r = __pyx_t_1;
     goto __pyx_L0;
 
-    /* "src/lxml/apihelpers.pxi":1009
+    /* "src/lxml/apihelpers.pxi":1004
  *         return 1
  *     c_href = python.__cstr(c_qname.href)
  *     if c_href[0] == '\0':             # <<<<<<<<<<<<<<
@@ -29740,7 +29667,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__nsTagMatchesExactly(const xmlChar
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":1011
+  /* "src/lxml/apihelpers.pxi":1006
  *     if c_href[0] == '\0':
  *         return c_node_href is NULL or c_node_href[0] == '\0'
  *     elif c_node_href is NULL:             # <<<<<<<<<<<<<<
@@ -29750,7 +29677,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__nsTagMatchesExactly(const xmlChar
   __pyx_t_1 = ((__pyx_v_c_node_href == NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "src/lxml/apihelpers.pxi":1012
+    /* "src/lxml/apihelpers.pxi":1007
  *         return c_node_href is NULL or c_node_href[0] == '\0'
  *     elif c_node_href is NULL:
  *         return 0             # <<<<<<<<<<<<<<
@@ -29760,7 +29687,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__nsTagMatchesExactly(const xmlChar
     __pyx_r = 0;
     goto __pyx_L0;
 
-    /* "src/lxml/apihelpers.pxi":1011
+    /* "src/lxml/apihelpers.pxi":1006
  *     if c_href[0] == '\0':
  *         return c_node_href is NULL or c_node_href[0] == '\0'
  *     elif c_node_href is NULL:             # <<<<<<<<<<<<<<
@@ -29769,7 +29696,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__nsTagMatchesExactly(const xmlChar
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":1014
+  /* "src/lxml/apihelpers.pxi":1009
  *         return 0
  *     else:
  *         return tree.xmlStrcmp(<const_xmlChar*>c_href, c_node_href) == 0             # <<<<<<<<<<<<<<
@@ -29781,7 +29708,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__nsTagMatchesExactly(const xmlChar
     goto __pyx_L0;
   }
 
-  /* "src/lxml/apihelpers.pxi":983
+  /* "src/lxml/apihelpers.pxi":978
  *     return _nsTagMatchesExactly(_getNs(c_node), c_node.name, c_qname)
  * 
  * cdef inline bint _nsTagMatchesExactly(const_xmlChar* c_node_href,             # <<<<<<<<<<<<<<
@@ -29795,7 +29722,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__nsTagMatchesExactly(const xmlChar
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":1016
+/* "src/lxml/apihelpers.pxi":1011
  *         return tree.xmlStrcmp(<const_xmlChar*>c_href, c_node_href) == 0
  * 
  * cdef Py_ssize_t _mapTagsToQnameMatchArray(xmlDoc* c_doc, list ns_tags,             # <<<<<<<<<<<<<<
@@ -29825,7 +29752,7 @@ static Py_ssize_t __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(xmlDoc *__pyx_v
   Py_ssize_t __pyx_t_12;
   __Pyx_RefNannySetupContext("_mapTagsToQnameMatchArray", 0);
 
-  /* "src/lxml/apihelpers.pxi":1024
+  /* "src/lxml/apihelpers.pxi":1019
  *     if it is not NULL.
  *     """
  *     cdef Py_ssize_t count = 0, i             # <<<<<<<<<<<<<<
@@ -29834,7 +29761,7 @@ static Py_ssize_t __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(xmlDoc *__pyx_v
  */
   __pyx_v_count = 0;
 
-  /* "src/lxml/apihelpers.pxi":1026
+  /* "src/lxml/apihelpers.pxi":1021
  *     cdef Py_ssize_t count = 0, i
  *     cdef bytes ns, tag
  *     for ns, tag in ns_tags:             # <<<<<<<<<<<<<<
@@ -29843,15 +29770,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_ERR(5, 1026, __pyx_L1_error)
+    __PYX_ERR(5, 1021, __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_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
-    __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_ERR(5, 1026, __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_ERR(5, 1021, __pyx_L1_error)
     #else
-    __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1026, __pyx_L1_error)
+    __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1021, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_3);
     #endif
     if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) {
@@ -29860,7 +29787,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_ERR(5, 1026, __pyx_L1_error)
+        __PYX_ERR(5, 1021, __pyx_L1_error)
       }
       #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
       if (likely(PyTuple_CheckExact(sequence))) {
@@ -29873,15 +29800,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_ERR(5, 1026, __pyx_L1_error)
+      __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1021, __pyx_L1_error)
       __Pyx_GOTREF(__pyx_t_4);
-      __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1026, __pyx_L1_error)
+      __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1021, __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_ERR(5, 1026, __pyx_L1_error)
+      __pyx_t_6 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 1021, __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;
@@ -29889,7 +29816,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_ERR(5, 1026, __pyx_L1_error)
+      if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 2) < 0) __PYX_ERR(5, 1021, __pyx_L1_error)
       __pyx_t_7 = NULL;
       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
       goto __pyx_L6_unpacking_done;
@@ -29897,17 +29824,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_ERR(5, 1026, __pyx_L1_error)
+      __PYX_ERR(5, 1021, __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_ERR(5, 1026, __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_ERR(5, 1026, __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_ERR(5, 1021, __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_ERR(5, 1021, __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;
 
-    /* "src/lxml/apihelpers.pxi":1027
+    /* "src/lxml/apihelpers.pxi":1022
  *     cdef bytes ns, tag
  *     for ns, tag in ns_tags:
  *         if tag is None:             # <<<<<<<<<<<<<<
@@ -29918,7 +29845,7 @@ static Py_ssize_t __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(xmlDoc *__pyx_v
     __pyx_t_9 = (__pyx_t_8 != 0);
     if (__pyx_t_9) {
 
-      /* "src/lxml/apihelpers.pxi":1028
+      /* "src/lxml/apihelpers.pxi":1023
  *     for ns, tag in ns_tags:
  *         if tag is None:
  *             c_tag = <const_xmlChar*>NULL             # <<<<<<<<<<<<<<
@@ -29927,7 +29854,7 @@ static Py_ssize_t __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(xmlDoc *__pyx_v
  */
       __pyx_v_c_tag = ((const xmlChar *)NULL);
 
-      /* "src/lxml/apihelpers.pxi":1027
+      /* "src/lxml/apihelpers.pxi":1022
  *     cdef bytes ns, tag
  *     for ns, tag in ns_tags:
  *         if tag is None:             # <<<<<<<<<<<<<<
@@ -29937,7 +29864,7 @@ static Py_ssize_t __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(xmlDoc *__pyx_v
       goto __pyx_L7;
     }
 
-    /* "src/lxml/apihelpers.pxi":1029
+    /* "src/lxml/apihelpers.pxi":1024
  *         if tag is None:
  *             c_tag = <const_xmlChar*>NULL
  *         elif force_into_dict:             # <<<<<<<<<<<<<<
@@ -29947,7 +29874,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) {
 
-      /* "src/lxml/apihelpers.pxi":1030
+      /* "src/lxml/apihelpers.pxi":1025
  *             c_tag = <const_xmlChar*>NULL
  *         elif force_into_dict:
  *             c_tag = tree.xmlDictLookup(c_doc.dict, _xcstr(tag), len(tag))             # <<<<<<<<<<<<<<
@@ -29956,12 +29883,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_ERR(5, 1030, __pyx_L1_error)
+        __PYX_ERR(5, 1025, __pyx_L1_error)
       }
-      __pyx_t_10 = PyBytes_GET_SIZE(__pyx_v_tag); if (unlikely(__pyx_t_10 == ((Py_ssize_t)-1))) __PYX_ERR(5, 1030, __pyx_L1_error)
+      __pyx_t_10 = PyBytes_GET_SIZE(__pyx_v_tag); if (unlikely(__pyx_t_10 == ((Py_ssize_t)-1))) __PYX_ERR(5, 1025, __pyx_L1_error)
       __pyx_v_c_tag = xmlDictLookup(__pyx_v_c_doc->dict, (const xmlChar*)PyBytes_AS_STRING(__pyx_v_tag), __pyx_t_10);
 
-      /* "src/lxml/apihelpers.pxi":1031
+      /* "src/lxml/apihelpers.pxi":1026
  *         elif force_into_dict:
  *             c_tag = tree.xmlDictLookup(c_doc.dict, _xcstr(tag), len(tag))
  *             if c_tag is NULL:             # <<<<<<<<<<<<<<
@@ -29971,7 +29898,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) {
 
-        /* "src/lxml/apihelpers.pxi":1033
+        /* "src/lxml/apihelpers.pxi":1028
  *             if c_tag is NULL:
  *                 # clean up before raising the error
  *                 for i in xrange(count):             # <<<<<<<<<<<<<<
@@ -29983,7 +29910,7 @@ static Py_ssize_t __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(xmlDoc *__pyx_v
         for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) {
           __pyx_v_i = __pyx_t_12;
 
-          /* "src/lxml/apihelpers.pxi":1034
+          /* "src/lxml/apihelpers.pxi":1029
  *                 # clean up before raising the error
  *                 for i in xrange(count):
  *                     cpython.ref.Py_XDECREF(c_ns_tags[i].href)             # <<<<<<<<<<<<<<
@@ -29993,16 +29920,16 @@ static Py_ssize_t __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(xmlDoc *__pyx_v
           Py_XDECREF((__pyx_v_c_ns_tags[__pyx_v_i]).href);
         }
 
-        /* "src/lxml/apihelpers.pxi":1035
+        /* "src/lxml/apihelpers.pxi":1030
  *                 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_ERR(5, 1035, __pyx_L1_error)
+        PyErr_NoMemory(); __PYX_ERR(5, 1030, __pyx_L1_error)
 
-        /* "src/lxml/apihelpers.pxi":1031
+        /* "src/lxml/apihelpers.pxi":1026
  *         elif force_into_dict:
  *             c_tag = tree.xmlDictLookup(c_doc.dict, _xcstr(tag), len(tag))
  *             if c_tag is NULL:             # <<<<<<<<<<<<<<
@@ -30011,7 +29938,7 @@ static Py_ssize_t __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(xmlDoc *__pyx_v
  */
       }
 
-      /* "src/lxml/apihelpers.pxi":1029
+      /* "src/lxml/apihelpers.pxi":1024
  *         if tag is None:
  *             c_tag = <const_xmlChar*>NULL
  *         elif force_into_dict:             # <<<<<<<<<<<<<<
@@ -30021,7 +29948,7 @@ static Py_ssize_t __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(xmlDoc *__pyx_v
       goto __pyx_L7;
     }
 
-    /* "src/lxml/apihelpers.pxi":1037
+    /* "src/lxml/apihelpers.pxi":1032
  *                 raise MemoryError()
  *         else:
  *             c_tag = tree.xmlDictExists(c_doc.dict, _xcstr(tag), len(tag))             # <<<<<<<<<<<<<<
@@ -30031,12 +29958,12 @@ static Py_ssize_t __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(xmlDoc *__pyx_v
     /*else*/ {
       if (unlikely(__pyx_v_tag == Py_None)) {
         PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
-        __PYX_ERR(5, 1037, __pyx_L1_error)
+        __PYX_ERR(5, 1032, __pyx_L1_error)
       }
-      __pyx_t_10 = PyBytes_GET_SIZE(__pyx_v_tag); if (unlikely(__pyx_t_10 == ((Py_ssize_t)-1))) __PYX_ERR(5, 1037, __pyx_L1_error)
+      __pyx_t_10 = PyBytes_GET_SIZE(__pyx_v_tag); if (unlikely(__pyx_t_10 == ((Py_ssize_t)-1))) __PYX_ERR(5, 1032, __pyx_L1_error)
       __pyx_v_c_tag = xmlDictExists(__pyx_v_c_doc->dict, (const xmlChar*)PyBytes_AS_STRING(__pyx_v_tag), __pyx_t_10);
 
-      /* "src/lxml/apihelpers.pxi":1038
+      /* "src/lxml/apihelpers.pxi":1033
  *         else:
  *             c_tag = tree.xmlDictExists(c_doc.dict, _xcstr(tag), len(tag))
  *             if c_tag is NULL:             # <<<<<<<<<<<<<<
@@ -30046,7 +29973,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) {
 
-        /* "src/lxml/apihelpers.pxi":1040
+        /* "src/lxml/apihelpers.pxi":1035
  *             if c_tag is NULL:
  *                 # not in the dict => not in the document
  *                 continue             # <<<<<<<<<<<<<<
@@ -30055,7 +29982,7 @@ static Py_ssize_t __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(xmlDoc *__pyx_v
  */
         goto __pyx_L3_continue;
 
-        /* "src/lxml/apihelpers.pxi":1038
+        /* "src/lxml/apihelpers.pxi":1033
  *         else:
  *             c_tag = tree.xmlDictExists(c_doc.dict, _xcstr(tag), len(tag))
  *             if c_tag is NULL:             # <<<<<<<<<<<<<<
@@ -30066,7 +29993,7 @@ static Py_ssize_t __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(xmlDoc *__pyx_v
     }
     __pyx_L7:;
 
-    /* "src/lxml/apihelpers.pxi":1041
+    /* "src/lxml/apihelpers.pxi":1036
  *                 # not in the dict => not in the document
  *                 continue
  *         c_ns_tags[count].c_name = c_tag             # <<<<<<<<<<<<<<
@@ -30075,7 +30002,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;
 
-    /* "src/lxml/apihelpers.pxi":1042
+    /* "src/lxml/apihelpers.pxi":1037
  *                 continue
  *         c_ns_tags[count].c_name = c_tag
  *         if ns is None:             # <<<<<<<<<<<<<<
@@ -30086,7 +30013,7 @@ static Py_ssize_t __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(xmlDoc *__pyx_v
     __pyx_t_8 = (__pyx_t_9 != 0);
     if (__pyx_t_8) {
 
-      /* "src/lxml/apihelpers.pxi":1043
+      /* "src/lxml/apihelpers.pxi":1038
  *         c_ns_tags[count].c_name = c_tag
  *         if ns is None:
  *             c_ns_tags[count].href = NULL             # <<<<<<<<<<<<<<
@@ -30095,7 +30022,7 @@ static Py_ssize_t __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(xmlDoc *__pyx_v
  */
       (__pyx_v_c_ns_tags[__pyx_v_count]).href = NULL;
 
-      /* "src/lxml/apihelpers.pxi":1042
+      /* "src/lxml/apihelpers.pxi":1037
  *                 continue
  *         c_ns_tags[count].c_name = c_tag
  *         if ns is None:             # <<<<<<<<<<<<<<
@@ -30105,7 +30032,7 @@ static Py_ssize_t __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(xmlDoc *__pyx_v
       goto __pyx_L12;
     }
 
-    /* "src/lxml/apihelpers.pxi":1045
+    /* "src/lxml/apihelpers.pxi":1040
  *             c_ns_tags[count].href = NULL
  *         else:
  *             cpython.ref.Py_INCREF(ns) # keep an owned reference!             # <<<<<<<<<<<<<<
@@ -30115,7 +30042,7 @@ static Py_ssize_t __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(xmlDoc *__pyx_v
     /*else*/ {
       Py_INCREF(__pyx_v_ns);
 
-      /* "src/lxml/apihelpers.pxi":1046
+      /* "src/lxml/apihelpers.pxi":1041
  *         else:
  *             cpython.ref.Py_INCREF(ns) # keep an owned reference!
  *             c_ns_tags[count].href = <python.PyObject*>ns             # <<<<<<<<<<<<<<
@@ -30126,7 +30053,7 @@ static Py_ssize_t __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(xmlDoc *__pyx_v
     }
     __pyx_L12:;
 
-    /* "src/lxml/apihelpers.pxi":1047
+    /* "src/lxml/apihelpers.pxi":1042
  *             cpython.ref.Py_INCREF(ns) # keep an owned reference!
  *             c_ns_tags[count].href = <python.PyObject*>ns
  *         count += 1             # <<<<<<<<<<<<<<
@@ -30135,7 +30062,7 @@ static Py_ssize_t __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(xmlDoc *__pyx_v
  */
     __pyx_v_count = (__pyx_v_count + 1);
 
-    /* "src/lxml/apihelpers.pxi":1026
+    /* "src/lxml/apihelpers.pxi":1021
  *     cdef Py_ssize_t count = 0, i
  *     cdef bytes ns, tag
  *     for ns, tag in ns_tags:             # <<<<<<<<<<<<<<
@@ -30146,7 +30073,7 @@ static Py_ssize_t __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(xmlDoc *__pyx_v
   }
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "src/lxml/apihelpers.pxi":1048
+  /* "src/lxml/apihelpers.pxi":1043
  *             c_ns_tags[count].href = <python.PyObject*>ns
  *         count += 1
  *     return count             # <<<<<<<<<<<<<<
@@ -30156,7 +30083,7 @@ static Py_ssize_t __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(xmlDoc *__pyx_v
   __pyx_r = __pyx_v_count;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":1016
+  /* "src/lxml/apihelpers.pxi":1011
  *         return tree.xmlStrcmp(<const_xmlChar*>c_href, c_node_href) == 0
  * 
  * cdef Py_ssize_t _mapTagsToQnameMatchArray(xmlDoc* c_doc, list ns_tags,             # <<<<<<<<<<<<<<
@@ -30180,7 +30107,7 @@ static Py_ssize_t __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(xmlDoc *__pyx_v
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":1050
+/* "src/lxml/apihelpers.pxi":1045
  *     return count
  * 
  * cdef int _removeNode(_Document doc, xmlNode* c_node) except -1:             # <<<<<<<<<<<<<<
@@ -30197,7 +30124,7 @@ static int __pyx_f_4lxml_5etree__removeNode(struct LxmlDocument *__pyx_v_doc, xm
   int __pyx_t_3;
   __Pyx_RefNannySetupContext("_removeNode", 0);
 
-  /* "src/lxml/apihelpers.pxi":1055
+  /* "src/lxml/apihelpers.pxi":1050
  *     """
  *     cdef xmlNode* c_next
  *     c_next = c_node.next             # <<<<<<<<<<<<<<
@@ -30207,7 +30134,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;
 
-  /* "src/lxml/apihelpers.pxi":1056
+  /* "src/lxml/apihelpers.pxi":1051
  *     cdef xmlNode* c_next
  *     c_next = c_node.next
  *     tree.xmlUnlinkNode(c_node)             # <<<<<<<<<<<<<<
@@ -30216,7 +30143,7 @@ static int __pyx_f_4lxml_5etree__removeNode(struct LxmlDocument *__pyx_v_doc, xm
  */
   xmlUnlinkNode(__pyx_v_c_node);
 
-  /* "src/lxml/apihelpers.pxi":1057
+  /* "src/lxml/apihelpers.pxi":1052
  *     c_next = c_node.next
  *     tree.xmlUnlinkNode(c_node)
  *     _moveTail(c_next, c_node)             # <<<<<<<<<<<<<<
@@ -30225,7 +30152,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);
 
-  /* "src/lxml/apihelpers.pxi":1058
+  /* "src/lxml/apihelpers.pxi":1053
  *     tree.xmlUnlinkNode(c_node)
  *     _moveTail(c_next, c_node)
  *     if not attemptDeallocation(c_node):             # <<<<<<<<<<<<<<
@@ -30235,16 +30162,16 @@ 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) {
 
-    /* "src/lxml/apihelpers.pxi":1060
+    /* "src/lxml/apihelpers.pxi":1055
  *     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 == ((int)-1))) __PYX_ERR(5, 1060, __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 == ((int)-1))) __PYX_ERR(5, 1055, __pyx_L1_error)
 
-    /* "src/lxml/apihelpers.pxi":1058
+    /* "src/lxml/apihelpers.pxi":1053
  *     tree.xmlUnlinkNode(c_node)
  *     _moveTail(c_next, c_node)
  *     if not attemptDeallocation(c_node):             # <<<<<<<<<<<<<<
@@ -30253,7 +30180,7 @@ static int __pyx_f_4lxml_5etree__removeNode(struct LxmlDocument *__pyx_v_doc, xm
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":1061
+  /* "src/lxml/apihelpers.pxi":1056
  *         # make namespaces absolute
  *         moveNodeToDocument(doc, c_node.doc, c_node)
  *     return 0             # <<<<<<<<<<<<<<
@@ -30263,7 +30190,7 @@ static int __pyx_f_4lxml_5etree__removeNode(struct LxmlDocument *__pyx_v_doc, xm
   __pyx_r = 0;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":1050
+  /* "src/lxml/apihelpers.pxi":1045
  *     return count
  * 
  * cdef int _removeNode(_Document doc, xmlNode* c_node) except -1:             # <<<<<<<<<<<<<<
@@ -30280,7 +30207,7 @@ static int __pyx_f_4lxml_5etree__removeNode(struct LxmlDocument *__pyx_v_doc, xm
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":1063
+/* "src/lxml/apihelpers.pxi":1058
  *     return 0
  * 
  * cdef int _removeSiblings(xmlNode* c_element, tree.xmlElementType node_type, bint with_tail) except -1:             # <<<<<<<<<<<<<<
@@ -30297,7 +30224,7 @@ static int __pyx_f_4lxml_5etree__removeSiblings(xmlNode *__pyx_v_c_element, xmlE
   int __pyx_t_2;
   __Pyx_RefNannySetupContext("_removeSiblings", 0);
 
-  /* "src/lxml/apihelpers.pxi":1066
+  /* "src/lxml/apihelpers.pxi":1061
  *     cdef xmlNode* c_node
  *     cdef xmlNode* c_next
  *     c_node = c_element.next             # <<<<<<<<<<<<<<
@@ -30307,7 +30234,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;
 
-  /* "src/lxml/apihelpers.pxi":1067
+  /* "src/lxml/apihelpers.pxi":1062
  *     cdef xmlNode* c_next
  *     c_node = c_element.next
  *     while c_node is not NULL:             # <<<<<<<<<<<<<<
@@ -30318,7 +30245,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;
 
-    /* "src/lxml/apihelpers.pxi":1068
+    /* "src/lxml/apihelpers.pxi":1063
  *     c_node = c_element.next
  *     while c_node is not NULL:
  *         c_next = _nextElement(c_node)             # <<<<<<<<<<<<<<
@@ -30327,7 +30254,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);
 
-    /* "src/lxml/apihelpers.pxi":1069
+    /* "src/lxml/apihelpers.pxi":1064
  *     while c_node is not NULL:
  *         c_next = _nextElement(c_node)
  *         if c_node.type == node_type:             # <<<<<<<<<<<<<<
@@ -30337,7 +30264,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) {
 
-      /* "src/lxml/apihelpers.pxi":1070
+      /* "src/lxml/apihelpers.pxi":1065
  *         c_next = _nextElement(c_node)
  *         if c_node.type == node_type:
  *             if with_tail:             # <<<<<<<<<<<<<<
@@ -30347,7 +30274,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) {
 
-        /* "src/lxml/apihelpers.pxi":1071
+        /* "src/lxml/apihelpers.pxi":1066
  *         if c_node.type == node_type:
  *             if with_tail:
  *                 _removeText(c_node.next)             # <<<<<<<<<<<<<<
@@ -30356,7 +30283,7 @@ static int __pyx_f_4lxml_5etree__removeSiblings(xmlNode *__pyx_v_c_element, xmlE
  */
         __pyx_f_4lxml_5etree__removeText(__pyx_v_c_node->next);
 
-        /* "src/lxml/apihelpers.pxi":1070
+        /* "src/lxml/apihelpers.pxi":1065
  *         c_next = _nextElement(c_node)
  *         if c_node.type == node_type:
  *             if with_tail:             # <<<<<<<<<<<<<<
@@ -30365,7 +30292,7 @@ static int __pyx_f_4lxml_5etree__removeSiblings(xmlNode *__pyx_v_c_element, xmlE
  */
       }
 
-      /* "src/lxml/apihelpers.pxi":1072
+      /* "src/lxml/apihelpers.pxi":1067
  *             if with_tail:
  *                 _removeText(c_node.next)
  *             tree.xmlUnlinkNode(c_node)             # <<<<<<<<<<<<<<
@@ -30374,7 +30301,7 @@ static int __pyx_f_4lxml_5etree__removeSiblings(xmlNode *__pyx_v_c_element, xmlE
  */
       xmlUnlinkNode(__pyx_v_c_node);
 
-      /* "src/lxml/apihelpers.pxi":1073
+      /* "src/lxml/apihelpers.pxi":1068
  *                 _removeText(c_node.next)
  *             tree.xmlUnlinkNode(c_node)
  *             attemptDeallocation(c_node)             # <<<<<<<<<<<<<<
@@ -30383,7 +30310,7 @@ static int __pyx_f_4lxml_5etree__removeSiblings(xmlNode *__pyx_v_c_element, xmlE
  */
       (void)(__pyx_f_4lxml_5etree_attemptDeallocation(__pyx_v_c_node));
 
-      /* "src/lxml/apihelpers.pxi":1069
+      /* "src/lxml/apihelpers.pxi":1064
  *     while c_node is not NULL:
  *         c_next = _nextElement(c_node)
  *         if c_node.type == node_type:             # <<<<<<<<<<<<<<
@@ -30392,7 +30319,7 @@ static int __pyx_f_4lxml_5etree__removeSiblings(xmlNode *__pyx_v_c_element, xmlE
  */
     }
 
-    /* "src/lxml/apihelpers.pxi":1074
+    /* "src/lxml/apihelpers.pxi":1069
  *             tree.xmlUnlinkNode(c_node)
  *             attemptDeallocation(c_node)
  *         c_node = c_next             # <<<<<<<<<<<<<<
@@ -30402,7 +30329,7 @@ static int __pyx_f_4lxml_5etree__removeSiblings(xmlNode *__pyx_v_c_element, xmlE
     __pyx_v_c_node = __pyx_v_c_next;
   }
 
-  /* "src/lxml/apihelpers.pxi":1075
+  /* "src/lxml/apihelpers.pxi":1070
  *             attemptDeallocation(c_node)
  *         c_node = c_next
  *     c_node = c_element.prev             # <<<<<<<<<<<<<<
@@ -30412,7 +30339,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;
 
-  /* "src/lxml/apihelpers.pxi":1076
+  /* "src/lxml/apihelpers.pxi":1071
  *         c_node = c_next
  *     c_node = c_element.prev
  *     while c_node is not NULL:             # <<<<<<<<<<<<<<
@@ -30423,7 +30350,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;
 
-    /* "src/lxml/apihelpers.pxi":1077
+    /* "src/lxml/apihelpers.pxi":1072
  *     c_node = c_element.prev
  *     while c_node is not NULL:
  *         c_next = _previousElement(c_node)             # <<<<<<<<<<<<<<
@@ -30432,7 +30359,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);
 
-    /* "src/lxml/apihelpers.pxi":1078
+    /* "src/lxml/apihelpers.pxi":1073
  *     while c_node is not NULL:
  *         c_next = _previousElement(c_node)
  *         if c_node.type == node_type:             # <<<<<<<<<<<<<<
@@ -30442,7 +30369,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) {
 
-      /* "src/lxml/apihelpers.pxi":1079
+      /* "src/lxml/apihelpers.pxi":1074
  *         c_next = _previousElement(c_node)
  *         if c_node.type == node_type:
  *             if with_tail:             # <<<<<<<<<<<<<<
@@ -30452,7 +30379,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) {
 
-        /* "src/lxml/apihelpers.pxi":1080
+        /* "src/lxml/apihelpers.pxi":1075
  *         if c_node.type == node_type:
  *             if with_tail:
  *                 _removeText(c_node.next)             # <<<<<<<<<<<<<<
@@ -30461,7 +30388,7 @@ static int __pyx_f_4lxml_5etree__removeSiblings(xmlNode *__pyx_v_c_element, xmlE
  */
         __pyx_f_4lxml_5etree__removeText(__pyx_v_c_node->next);
 
-        /* "src/lxml/apihelpers.pxi":1079
+        /* "src/lxml/apihelpers.pxi":1074
  *         c_next = _previousElement(c_node)
  *         if c_node.type == node_type:
  *             if with_tail:             # <<<<<<<<<<<<<<
@@ -30470,7 +30397,7 @@ static int __pyx_f_4lxml_5etree__removeSiblings(xmlNode *__pyx_v_c_element, xmlE
  */
       }
 
-      /* "src/lxml/apihelpers.pxi":1081
+      /* "src/lxml/apihelpers.pxi":1076
  *             if with_tail:
  *                 _removeText(c_node.next)
  *             tree.xmlUnlinkNode(c_node)             # <<<<<<<<<<<<<<
@@ -30479,7 +30406,7 @@ static int __pyx_f_4lxml_5etree__removeSiblings(xmlNode *__pyx_v_c_element, xmlE
  */
       xmlUnlinkNode(__pyx_v_c_node);
 
-      /* "src/lxml/apihelpers.pxi":1082
+      /* "src/lxml/apihelpers.pxi":1077
  *                 _removeText(c_node.next)
  *             tree.xmlUnlinkNode(c_node)
  *             attemptDeallocation(c_node)             # <<<<<<<<<<<<<<
@@ -30488,7 +30415,7 @@ static int __pyx_f_4lxml_5etree__removeSiblings(xmlNode *__pyx_v_c_element, xmlE
  */
       (void)(__pyx_f_4lxml_5etree_attemptDeallocation(__pyx_v_c_node));
 
-      /* "src/lxml/apihelpers.pxi":1078
+      /* "src/lxml/apihelpers.pxi":1073
  *     while c_node is not NULL:
  *         c_next = _previousElement(c_node)
  *         if c_node.type == node_type:             # <<<<<<<<<<<<<<
@@ -30497,7 +30424,7 @@ static int __pyx_f_4lxml_5etree__removeSiblings(xmlNode *__pyx_v_c_element, xmlE
  */
     }
 
-    /* "src/lxml/apihelpers.pxi":1083
+    /* "src/lxml/apihelpers.pxi":1078
  *             tree.xmlUnlinkNode(c_node)
  *             attemptDeallocation(c_node)
  *         c_node = c_next             # <<<<<<<<<<<<<<
@@ -30507,7 +30434,7 @@ static int __pyx_f_4lxml_5etree__removeSiblings(xmlNode *__pyx_v_c_element, xmlE
     __pyx_v_c_node = __pyx_v_c_next;
   }
 
-  /* "src/lxml/apihelpers.pxi":1084
+  /* "src/lxml/apihelpers.pxi":1079
  *             attemptDeallocation(c_node)
  *         c_node = c_next
  *     return 0             # <<<<<<<<<<<<<<
@@ -30517,7 +30444,7 @@ static int __pyx_f_4lxml_5etree__removeSiblings(xmlNode *__pyx_v_c_element, xmlE
   __pyx_r = 0;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":1063
+  /* "src/lxml/apihelpers.pxi":1058
  *     return 0
  * 
  * cdef int _removeSiblings(xmlNode* c_element, tree.xmlElementType node_type, bint with_tail) except -1:             # <<<<<<<<<<<<<<
@@ -30531,7 +30458,7 @@ static int __pyx_f_4lxml_5etree__removeSiblings(xmlNode *__pyx_v_c_element, xmlE
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":1086
+/* "src/lxml/apihelpers.pxi":1081
  *     return 0
  * 
  * cdef void _moveTail(xmlNode* c_tail, xmlNode* c_target):             # <<<<<<<<<<<<<<
@@ -30545,7 +30472,7 @@ static void __pyx_f_4lxml_5etree__moveTail(xmlNode *__pyx_v_c_tail, xmlNode *__p
   int __pyx_t_1;
   __Pyx_RefNannySetupContext("_moveTail", 0);
 
-  /* "src/lxml/apihelpers.pxi":1090
+  /* "src/lxml/apihelpers.pxi":1085
  *     # tail support: look for any text nodes trailing this node and
  *     # move them too
  *     c_tail = _textNodeOrSkip(c_tail)             # <<<<<<<<<<<<<<
@@ -30554,7 +30481,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);
 
-  /* "src/lxml/apihelpers.pxi":1091
+  /* "src/lxml/apihelpers.pxi":1086
  *     # move them too
  *     c_tail = _textNodeOrSkip(c_tail)
  *     while c_tail is not NULL:             # <<<<<<<<<<<<<<
@@ -30565,7 +30492,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;
 
-    /* "src/lxml/apihelpers.pxi":1092
+    /* "src/lxml/apihelpers.pxi":1087
  *     c_tail = _textNodeOrSkip(c_tail)
  *     while c_tail is not NULL:
  *         c_next = _textNodeOrSkip(c_tail.next)             # <<<<<<<<<<<<<<
@@ -30574,7 +30501,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);
 
-    /* "src/lxml/apihelpers.pxi":1093
+    /* "src/lxml/apihelpers.pxi":1088
  *     while c_tail is not NULL:
  *         c_next = _textNodeOrSkip(c_tail.next)
  *         c_target = tree.xmlAddNextSibling(c_target, c_tail)             # <<<<<<<<<<<<<<
@@ -30583,7 +30510,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);
 
-    /* "src/lxml/apihelpers.pxi":1094
+    /* "src/lxml/apihelpers.pxi":1089
  *         c_next = _textNodeOrSkip(c_tail.next)
  *         c_target = tree.xmlAddNextSibling(c_target, c_tail)
  *         c_tail = c_next             # <<<<<<<<<<<<<<
@@ -30593,7 +30520,7 @@ static void __pyx_f_4lxml_5etree__moveTail(xmlNode *__pyx_v_c_tail, xmlNode *__p
     __pyx_v_c_tail = __pyx_v_c_next;
   }
 
-  /* "src/lxml/apihelpers.pxi":1086
+  /* "src/lxml/apihelpers.pxi":1081
  *     return 0
  * 
  * cdef void _moveTail(xmlNode* c_tail, xmlNode* c_target):             # <<<<<<<<<<<<<<
@@ -30605,7 +30532,7 @@ static void __pyx_f_4lxml_5etree__moveTail(xmlNode *__pyx_v_c_tail, xmlNode *__p
   __Pyx_RefNannyFinishContext();
 }
 
-/* "src/lxml/apihelpers.pxi":1096
+/* "src/lxml/apihelpers.pxi":1091
  *         c_tail = c_next
  * 
  * cdef int _copyTail(xmlNode* c_tail, xmlNode* c_target) except -1:             # <<<<<<<<<<<<<<
@@ -30620,7 +30547,7 @@ static int __pyx_f_4lxml_5etree__copyTail(xmlNode *__pyx_v_c_tail, xmlNode *__py
   int __pyx_t_1;
   __Pyx_RefNannySetupContext("_copyTail", 0);
 
-  /* "src/lxml/apihelpers.pxi":1100
+  /* "src/lxml/apihelpers.pxi":1095
  *     # tail copying support: look for any text nodes trailing this node and
  *     # copy it to the target node
  *     c_tail = _textNodeOrSkip(c_tail)             # <<<<<<<<<<<<<<
@@ -30629,7 +30556,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);
 
-  /* "src/lxml/apihelpers.pxi":1101
+  /* "src/lxml/apihelpers.pxi":1096
  *     # copy it to the target node
  *     c_tail = _textNodeOrSkip(c_tail)
  *     while c_tail is not NULL:             # <<<<<<<<<<<<<<
@@ -30640,7 +30567,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;
 
-    /* "src/lxml/apihelpers.pxi":1102
+    /* "src/lxml/apihelpers.pxi":1097
  *     c_tail = _textNodeOrSkip(c_tail)
  *     while c_tail is not NULL:
  *         if c_target.doc is not c_tail.doc:             # <<<<<<<<<<<<<<
@@ -30650,7 +30577,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) {
 
-      /* "src/lxml/apihelpers.pxi":1103
+      /* "src/lxml/apihelpers.pxi":1098
  *     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)             # <<<<<<<<<<<<<<
@@ -30659,7 +30586,7 @@ static int __pyx_f_4lxml_5etree__copyTail(xmlNode *__pyx_v_c_tail, xmlNode *__py
  */
       __pyx_v_c_new_tail = xmlDocCopyNode(__pyx_v_c_tail, __pyx_v_c_target->doc, 0);
 
-      /* "src/lxml/apihelpers.pxi":1102
+      /* "src/lxml/apihelpers.pxi":1097
  *     c_tail = _textNodeOrSkip(c_tail)
  *     while c_tail is not NULL:
  *         if c_target.doc is not c_tail.doc:             # <<<<<<<<<<<<<<
@@ -30669,7 +30596,7 @@ static int __pyx_f_4lxml_5etree__copyTail(xmlNode *__pyx_v_c_tail, xmlNode *__py
       goto __pyx_L5;
     }
 
-    /* "src/lxml/apihelpers.pxi":1105
+    /* "src/lxml/apihelpers.pxi":1100
  *             c_new_tail = tree.xmlDocCopyNode(c_tail, c_target.doc, 0)
  *         else:
  *             c_new_tail = tree.xmlCopyNode(c_tail, 0)             # <<<<<<<<<<<<<<
@@ -30681,7 +30608,7 @@ static int __pyx_f_4lxml_5etree__copyTail(xmlNode *__pyx_v_c_tail, xmlNode *__py
     }
     __pyx_L5:;
 
-    /* "src/lxml/apihelpers.pxi":1106
+    /* "src/lxml/apihelpers.pxi":1101
  *         else:
  *             c_new_tail = tree.xmlCopyNode(c_tail, 0)
  *         if c_new_tail is NULL:             # <<<<<<<<<<<<<<
@@ -30691,16 +30618,16 @@ 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 (unlikely(__pyx_t_1)) {
 
-      /* "src/lxml/apihelpers.pxi":1107
+      /* "src/lxml/apihelpers.pxi":1102
  *             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_ERR(5, 1107, __pyx_L1_error)
+      PyErr_NoMemory(); __PYX_ERR(5, 1102, __pyx_L1_error)
 
-      /* "src/lxml/apihelpers.pxi":1106
+      /* "src/lxml/apihelpers.pxi":1101
  *         else:
  *             c_new_tail = tree.xmlCopyNode(c_tail, 0)
  *         if c_new_tail is NULL:             # <<<<<<<<<<<<<<
@@ -30709,7 +30636,7 @@ static int __pyx_f_4lxml_5etree__copyTail(xmlNode *__pyx_v_c_tail, xmlNode *__py
  */
     }
 
-    /* "src/lxml/apihelpers.pxi":1108
+    /* "src/lxml/apihelpers.pxi":1103
  *         if c_new_tail is NULL:
  *             raise MemoryError()
  *         c_target = tree.xmlAddNextSibling(c_target, c_new_tail)             # <<<<<<<<<<<<<<
@@ -30718,7 +30645,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);
 
-    /* "src/lxml/apihelpers.pxi":1109
+    /* "src/lxml/apihelpers.pxi":1104
  *             raise MemoryError()
  *         c_target = tree.xmlAddNextSibling(c_target, c_new_tail)
  *         c_tail = _textNodeOrSkip(c_tail.next)             # <<<<<<<<<<<<<<
@@ -30728,7 +30655,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);
   }
 
-  /* "src/lxml/apihelpers.pxi":1110
+  /* "src/lxml/apihelpers.pxi":1105
  *         c_target = tree.xmlAddNextSibling(c_target, c_new_tail)
  *         c_tail = _textNodeOrSkip(c_tail.next)
  *     return 0             # <<<<<<<<<<<<<<
@@ -30738,7 +30665,7 @@ static int __pyx_f_4lxml_5etree__copyTail(xmlNode *__pyx_v_c_tail, xmlNode *__py
   __pyx_r = 0;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":1096
+  /* "src/lxml/apihelpers.pxi":1091
  *         c_tail = c_next
  * 
  * cdef int _copyTail(xmlNode* c_tail, xmlNode* c_target) except -1:             # <<<<<<<<<<<<<<
@@ -30755,7 +30682,7 @@ static int __pyx_f_4lxml_5etree__copyTail(xmlNode *__pyx_v_c_tail, xmlNode *__py
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":1112
+/* "src/lxml/apihelpers.pxi":1107
  *     return 0
  * 
  * cdef int _copyNonElementSiblings(xmlNode* c_node, xmlNode* c_target) except -1:             # <<<<<<<<<<<<<<
@@ -30774,7 +30701,7 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
   xmlDtd *__pyx_t_4;
   __Pyx_RefNannySetupContext("_copyNonElementSiblings", 0);
 
-  /* "src/lxml/apihelpers.pxi":1114
+  /* "src/lxml/apihelpers.pxi":1109
  * cdef int _copyNonElementSiblings(xmlNode* c_node, xmlNode* c_target) except -1:
  *     cdef xmlNode* c_copy
  *     cdef xmlNode* c_sibling = c_node             # <<<<<<<<<<<<<<
@@ -30783,7 +30710,7 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
  */
   __pyx_v_c_sibling = __pyx_v_c_node;
 
-  /* "src/lxml/apihelpers.pxi":1115
+  /* "src/lxml/apihelpers.pxi":1110
  *     cdef xmlNode* c_copy
  *     cdef xmlNode* c_sibling = c_node
  *     while c_sibling.prev != NULL and \             # <<<<<<<<<<<<<<
@@ -30798,7 +30725,7 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
       goto __pyx_L5_bool_binop_done;
     }
 
-    /* "src/lxml/apihelpers.pxi":1116
+    /* "src/lxml/apihelpers.pxi":1111
  *     cdef xmlNode* c_sibling = c_node
  *     while c_sibling.prev != NULL and \
  *             (c_sibling.prev.type == tree.XML_PI_NODE or             # <<<<<<<<<<<<<<
@@ -30809,7 +30736,7 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
       case XML_PI_NODE:
       case XML_COMMENT_NODE:
 
-      /* "src/lxml/apihelpers.pxi":1117
+      /* "src/lxml/apihelpers.pxi":1112
  *     while c_sibling.prev != NULL and \
  *             (c_sibling.prev.type == tree.XML_PI_NODE or
  *              c_sibling.prev.type == tree.XML_COMMENT_NODE or             # <<<<<<<<<<<<<<
@@ -30818,7 +30745,7 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
  */
       case XML_DTD_NODE:
 
-      /* "src/lxml/apihelpers.pxi":1116
+      /* "src/lxml/apihelpers.pxi":1111
  *     cdef xmlNode* c_sibling = c_node
  *     while c_sibling.prev != NULL and \
  *             (c_sibling.prev.type == tree.XML_PI_NODE or             # <<<<<<<<<<<<<<
@@ -30835,7 +30762,7 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
     __pyx_L5_bool_binop_done:;
     if (!__pyx_t_1) break;
 
-    /* "src/lxml/apihelpers.pxi":1119
+    /* "src/lxml/apihelpers.pxi":1114
  *              c_sibling.prev.type == tree.XML_COMMENT_NODE or
  *              c_sibling.prev.type == tree.XML_DTD_NODE):
  *         c_sibling = c_sibling.prev             # <<<<<<<<<<<<<<
@@ -30846,7 +30773,7 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
     __pyx_v_c_sibling = __pyx_t_3;
   }
 
-  /* "src/lxml/apihelpers.pxi":1120
+  /* "src/lxml/apihelpers.pxi":1115
  *              c_sibling.prev.type == tree.XML_DTD_NODE):
  *         c_sibling = c_sibling.prev
  *     while c_sibling != c_node:             # <<<<<<<<<<<<<<
@@ -30857,7 +30784,7 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
     __pyx_t_1 = ((__pyx_v_c_sibling != __pyx_v_c_node) != 0);
     if (!__pyx_t_1) break;
 
-    /* "src/lxml/apihelpers.pxi":1121
+    /* "src/lxml/apihelpers.pxi":1116
  *         c_sibling = c_sibling.prev
  *     while c_sibling != c_node:
  *         if c_sibling.type == tree.XML_DTD_NODE:             # <<<<<<<<<<<<<<
@@ -30867,17 +30794,17 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
     __pyx_t_1 = ((__pyx_v_c_sibling->type == XML_DTD_NODE) != 0);
     if (__pyx_t_1) {
 
-      /* "src/lxml/apihelpers.pxi":1122
+      /* "src/lxml/apihelpers.pxi":1117
  *     while c_sibling != c_node:
  *         if c_sibling.type == tree.XML_DTD_NODE:
  *             c_copy = <xmlNode*>_copyDtd(<tree.xmlDtd*>c_sibling)             # <<<<<<<<<<<<<<
  *             if c_sibling == <xmlNode*>c_node.doc.intSubset:
  *                 c_target.doc.intSubset = <tree.xmlDtd*>c_copy
  */
-      __pyx_t_4 = __pyx_f_4lxml_5etree__copyDtd(((xmlDtd *)__pyx_v_c_sibling)); if (unlikely(__pyx_t_4 == ((xmlDtd *)NULL))) __PYX_ERR(5, 1122, __pyx_L1_error)
+      __pyx_t_4 = __pyx_f_4lxml_5etree__copyDtd(((xmlDtd *)__pyx_v_c_sibling)); if (unlikely(__pyx_t_4 == ((xmlDtd *)NULL))) __PYX_ERR(5, 1117, __pyx_L1_error)
       __pyx_v_c_copy = ((xmlNode *)__pyx_t_4);
 
-      /* "src/lxml/apihelpers.pxi":1123
+      /* "src/lxml/apihelpers.pxi":1118
  *         if c_sibling.type == tree.XML_DTD_NODE:
  *             c_copy = <xmlNode*>_copyDtd(<tree.xmlDtd*>c_sibling)
  *             if c_sibling == <xmlNode*>c_node.doc.intSubset:             # <<<<<<<<<<<<<<
@@ -30887,7 +30814,7 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
       __pyx_t_1 = ((__pyx_v_c_sibling == ((xmlNode *)__pyx_v_c_node->doc->intSubset)) != 0);
       if (__pyx_t_1) {
 
-        /* "src/lxml/apihelpers.pxi":1124
+        /* "src/lxml/apihelpers.pxi":1119
  *             c_copy = <xmlNode*>_copyDtd(<tree.xmlDtd*>c_sibling)
  *             if c_sibling == <xmlNode*>c_node.doc.intSubset:
  *                 c_target.doc.intSubset = <tree.xmlDtd*>c_copy             # <<<<<<<<<<<<<<
@@ -30896,7 +30823,7 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
  */
         __pyx_v_c_target->doc->intSubset = ((xmlDtd *)__pyx_v_c_copy);
 
-        /* "src/lxml/apihelpers.pxi":1123
+        /* "src/lxml/apihelpers.pxi":1118
  *         if c_sibling.type == tree.XML_DTD_NODE:
  *             c_copy = <xmlNode*>_copyDtd(<tree.xmlDtd*>c_sibling)
  *             if c_sibling == <xmlNode*>c_node.doc.intSubset:             # <<<<<<<<<<<<<<
@@ -30906,7 +30833,7 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
         goto __pyx_L10;
       }
 
-      /* "src/lxml/apihelpers.pxi":1126
+      /* "src/lxml/apihelpers.pxi":1121
  *                 c_target.doc.intSubset = <tree.xmlDtd*>c_copy
  *             else: # c_sibling == c_node.doc.extSubset
  *                 c_target.doc.extSubset = <tree.xmlDtd*>c_copy             # <<<<<<<<<<<<<<
@@ -30918,7 +30845,7 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
       }
       __pyx_L10:;
 
-      /* "src/lxml/apihelpers.pxi":1121
+      /* "src/lxml/apihelpers.pxi":1116
  *         c_sibling = c_sibling.prev
  *     while c_sibling != c_node:
  *         if c_sibling.type == tree.XML_DTD_NODE:             # <<<<<<<<<<<<<<
@@ -30928,7 +30855,7 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
       goto __pyx_L9;
     }
 
-    /* "src/lxml/apihelpers.pxi":1128
+    /* "src/lxml/apihelpers.pxi":1123
  *                 c_target.doc.extSubset = <tree.xmlDtd*>c_copy
  *         else:
  *             c_copy = tree.xmlDocCopyNode(c_sibling, c_target.doc, 1)             # <<<<<<<<<<<<<<
@@ -30938,7 +30865,7 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
     /*else*/ {
       __pyx_v_c_copy = xmlDocCopyNode(__pyx_v_c_sibling, __pyx_v_c_target->doc, 1);
 
-      /* "src/lxml/apihelpers.pxi":1129
+      /* "src/lxml/apihelpers.pxi":1124
  *         else:
  *             c_copy = tree.xmlDocCopyNode(c_sibling, c_target.doc, 1)
  *             if c_copy is NULL:             # <<<<<<<<<<<<<<
@@ -30948,16 +30875,16 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
       __pyx_t_1 = ((__pyx_v_c_copy == NULL) != 0);
       if (unlikely(__pyx_t_1)) {
 
-        /* "src/lxml/apihelpers.pxi":1130
+        /* "src/lxml/apihelpers.pxi":1125
  *             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_ERR(5, 1130, __pyx_L1_error)
+        PyErr_NoMemory(); __PYX_ERR(5, 1125, __pyx_L1_error)
 
-        /* "src/lxml/apihelpers.pxi":1129
+        /* "src/lxml/apihelpers.pxi":1124
  *         else:
  *             c_copy = tree.xmlDocCopyNode(c_sibling, c_target.doc, 1)
  *             if c_copy is NULL:             # <<<<<<<<<<<<<<
@@ -30968,7 +30895,7 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
     }
     __pyx_L9:;
 
-    /* "src/lxml/apihelpers.pxi":1131
+    /* "src/lxml/apihelpers.pxi":1126
  *             if c_copy is NULL:
  *                 raise MemoryError()
  *         tree.xmlAddPrevSibling(c_target, c_copy)             # <<<<<<<<<<<<<<
@@ -30977,7 +30904,7 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
  */
     (void)(xmlAddPrevSibling(__pyx_v_c_target, __pyx_v_c_copy));
 
-    /* "src/lxml/apihelpers.pxi":1132
+    /* "src/lxml/apihelpers.pxi":1127
  *                 raise MemoryError()
  *         tree.xmlAddPrevSibling(c_target, c_copy)
  *         c_sibling = c_sibling.next             # <<<<<<<<<<<<<<
@@ -30988,7 +30915,7 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
     __pyx_v_c_sibling = __pyx_t_3;
   }
 
-  /* "src/lxml/apihelpers.pxi":1133
+  /* "src/lxml/apihelpers.pxi":1128
  *         tree.xmlAddPrevSibling(c_target, c_copy)
  *         c_sibling = c_sibling.next
  *     while c_sibling.next != NULL and \             # <<<<<<<<<<<<<<
@@ -31003,7 +30930,7 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
       goto __pyx_L14_bool_binop_done;
     }
 
-    /* "src/lxml/apihelpers.pxi":1134
+    /* "src/lxml/apihelpers.pxi":1129
  *         c_sibling = c_sibling.next
  *     while c_sibling.next != NULL and \
  *             (c_sibling.next.type == tree.XML_PI_NODE or             # <<<<<<<<<<<<<<
@@ -31014,7 +30941,7 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
       case XML_PI_NODE:
       case XML_COMMENT_NODE:
 
-      /* "src/lxml/apihelpers.pxi":1135
+      /* "src/lxml/apihelpers.pxi":1130
  *     while c_sibling.next != NULL and \
  *             (c_sibling.next.type == tree.XML_PI_NODE or
  *              c_sibling.next.type == tree.XML_COMMENT_NODE):             # <<<<<<<<<<<<<<
@@ -31023,7 +30950,7 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
  */
       __pyx_t_2 = 1;
 
-      /* "src/lxml/apihelpers.pxi":1134
+      /* "src/lxml/apihelpers.pxi":1129
  *         c_sibling = c_sibling.next
  *     while c_sibling.next != NULL and \
  *             (c_sibling.next.type == tree.XML_PI_NODE or             # <<<<<<<<<<<<<<
@@ -31039,7 +30966,7 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
     __pyx_L14_bool_binop_done:;
     if (!__pyx_t_1) break;
 
-    /* "src/lxml/apihelpers.pxi":1136
+    /* "src/lxml/apihelpers.pxi":1131
  *             (c_sibling.next.type == tree.XML_PI_NODE or
  *              c_sibling.next.type == tree.XML_COMMENT_NODE):
  *         c_sibling = c_sibling.next             # <<<<<<<<<<<<<<
@@ -31049,7 +30976,7 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
     __pyx_t_3 = __pyx_v_c_sibling->next;
     __pyx_v_c_sibling = __pyx_t_3;
 
-    /* "src/lxml/apihelpers.pxi":1137
+    /* "src/lxml/apihelpers.pxi":1132
  *              c_sibling.next.type == tree.XML_COMMENT_NODE):
  *         c_sibling = c_sibling.next
  *         c_copy = tree.xmlDocCopyNode(c_sibling, c_target.doc, 1)             # <<<<<<<<<<<<<<
@@ -31058,7 +30985,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);
 
-    /* "src/lxml/apihelpers.pxi":1138
+    /* "src/lxml/apihelpers.pxi":1133
  *         c_sibling = c_sibling.next
  *         c_copy = tree.xmlDocCopyNode(c_sibling, c_target.doc, 1)
  *         if c_copy is NULL:             # <<<<<<<<<<<<<<
@@ -31068,16 +30995,16 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
     __pyx_t_1 = ((__pyx_v_c_copy == NULL) != 0);
     if (unlikely(__pyx_t_1)) {
 
-      /* "src/lxml/apihelpers.pxi":1139
+      /* "src/lxml/apihelpers.pxi":1134
  *         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_ERR(5, 1139, __pyx_L1_error)
+      PyErr_NoMemory(); __PYX_ERR(5, 1134, __pyx_L1_error)
 
-      /* "src/lxml/apihelpers.pxi":1138
+      /* "src/lxml/apihelpers.pxi":1133
  *         c_sibling = c_sibling.next
  *         c_copy = tree.xmlDocCopyNode(c_sibling, c_target.doc, 1)
  *         if c_copy is NULL:             # <<<<<<<<<<<<<<
@@ -31086,7 +31013,7 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
  */
     }
 
-    /* "src/lxml/apihelpers.pxi":1140
+    /* "src/lxml/apihelpers.pxi":1135
  *         if c_copy is NULL:
  *             raise MemoryError()
  *         tree.xmlAddNextSibling(c_target, c_copy)             # <<<<<<<<<<<<<<
@@ -31096,7 +31023,7 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
     (void)(xmlAddNextSibling(__pyx_v_c_target, __pyx_v_c_copy));
   }
 
-  /* "src/lxml/apihelpers.pxi":1112
+  /* "src/lxml/apihelpers.pxi":1107
  *     return 0
  * 
  * cdef int _copyNonElementSiblings(xmlNode* c_node, xmlNode* c_target) except -1:             # <<<<<<<<<<<<<<
@@ -31115,7 +31042,7 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":1142
+/* "src/lxml/apihelpers.pxi":1137
  *         tree.xmlAddNextSibling(c_target, c_copy)
  * 
  * cdef int _deleteSlice(_Document doc, xmlNode* c_node,             # <<<<<<<<<<<<<<
@@ -31138,7 +31065,7 @@ static int __pyx_f_4lxml_5etree__deleteSlice(struct LxmlDocument *__pyx_v_doc, x
   int __pyx_t_6;
   __Pyx_RefNannySetupContext("_deleteSlice", 0);
 
-  /* "src/lxml/apihelpers.pxi":1150
+  /* "src/lxml/apihelpers.pxi":1145
  *     cdef Py_ssize_t c, i
  *     cdef _node_to_node_function next_element
  *     if c_node is NULL:             # <<<<<<<<<<<<<<
@@ -31148,7 +31075,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) {
 
-    /* "src/lxml/apihelpers.pxi":1151
+    /* "src/lxml/apihelpers.pxi":1146
  *     cdef _node_to_node_function next_element
  *     if c_node is NULL:
  *         return 0             # <<<<<<<<<<<<<<
@@ -31158,7 +31085,7 @@ static int __pyx_f_4lxml_5etree__deleteSlice(struct LxmlDocument *__pyx_v_doc, x
     __pyx_r = 0;
     goto __pyx_L0;
 
-    /* "src/lxml/apihelpers.pxi":1150
+    /* "src/lxml/apihelpers.pxi":1145
  *     cdef Py_ssize_t c, i
  *     cdef _node_to_node_function next_element
  *     if c_node is NULL:             # <<<<<<<<<<<<<<
@@ -31167,7 +31094,7 @@ static int __pyx_f_4lxml_5etree__deleteSlice(struct LxmlDocument *__pyx_v_doc, x
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":1152
+  /* "src/lxml/apihelpers.pxi":1147
  *     if c_node is NULL:
  *         return 0
  *     if step > 0:             # <<<<<<<<<<<<<<
@@ -31177,7 +31104,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) {
 
-    /* "src/lxml/apihelpers.pxi":1153
+    /* "src/lxml/apihelpers.pxi":1148
  *         return 0
  *     if step > 0:
  *         next_element = _nextElement             # <<<<<<<<<<<<<<
@@ -31186,7 +31113,7 @@ static int __pyx_f_4lxml_5etree__deleteSlice(struct LxmlDocument *__pyx_v_doc, x
  */
     __pyx_v_next_element = __pyx_f_4lxml_5etree__nextElement;
 
-    /* "src/lxml/apihelpers.pxi":1152
+    /* "src/lxml/apihelpers.pxi":1147
  *     if c_node is NULL:
  *         return 0
  *     if step > 0:             # <<<<<<<<<<<<<<
@@ -31196,7 +31123,7 @@ static int __pyx_f_4lxml_5etree__deleteSlice(struct LxmlDocument *__pyx_v_doc, x
     goto __pyx_L4;
   }
 
-  /* "src/lxml/apihelpers.pxi":1155
+  /* "src/lxml/apihelpers.pxi":1150
  *         next_element = _nextElement
  *     else:
  *         step = -step             # <<<<<<<<<<<<<<
@@ -31206,7 +31133,7 @@ static int __pyx_f_4lxml_5etree__deleteSlice(struct LxmlDocument *__pyx_v_doc, x
   /*else*/ {
     __pyx_v_step = (-__pyx_v_step);
 
-    /* "src/lxml/apihelpers.pxi":1156
+    /* "src/lxml/apihelpers.pxi":1151
  *     else:
  *         step = -step
  *         next_element = _previousElement             # <<<<<<<<<<<<<<
@@ -31217,7 +31144,7 @@ static int __pyx_f_4lxml_5etree__deleteSlice(struct LxmlDocument *__pyx_v_doc, x
   }
   __pyx_L4:;
 
-  /* "src/lxml/apihelpers.pxi":1158
+  /* "src/lxml/apihelpers.pxi":1153
  *         next_element = _previousElement
  *     # now start deleting nodes
  *     c = 0             # <<<<<<<<<<<<<<
@@ -31226,7 +31153,7 @@ static int __pyx_f_4lxml_5etree__deleteSlice(struct LxmlDocument *__pyx_v_doc, x
  */
   __pyx_v_c = 0;
 
-  /* "src/lxml/apihelpers.pxi":1159
+  /* "src/lxml/apihelpers.pxi":1154
  *     # now start deleting nodes
  *     c = 0
  *     c_next = c_node             # <<<<<<<<<<<<<<
@@ -31235,7 +31162,7 @@ static int __pyx_f_4lxml_5etree__deleteSlice(struct LxmlDocument *__pyx_v_doc, x
  */
   __pyx_v_c_next = __pyx_v_c_node;
 
-  /* "src/lxml/apihelpers.pxi":1160
+  /* "src/lxml/apihelpers.pxi":1155
  *     c = 0
  *     c_next = c_node
  *     while c_node is not NULL and c < count:             # <<<<<<<<<<<<<<
@@ -31254,7 +31181,7 @@ static int __pyx_f_4lxml_5etree__deleteSlice(struct LxmlDocument *__pyx_v_doc, x
     __pyx_L7_bool_binop_done:;
     if (!__pyx_t_1) break;
 
-    /* "src/lxml/apihelpers.pxi":1161
+    /* "src/lxml/apihelpers.pxi":1156
  *     c_next = c_node
  *     while c_node is not NULL and c < count:
  *         for i in range(step):             # <<<<<<<<<<<<<<
@@ -31266,7 +31193,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;
 
-      /* "src/lxml/apihelpers.pxi":1162
+      /* "src/lxml/apihelpers.pxi":1157
  *     while c_node is not NULL and c < count:
  *         for i in range(step):
  *             c_next = next_element(c_next)             # <<<<<<<<<<<<<<
@@ -31275,7 +31202,7 @@ 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);
 
-      /* "src/lxml/apihelpers.pxi":1163
+      /* "src/lxml/apihelpers.pxi":1158
  *         for i in range(step):
  *             c_next = next_element(c_next)
  *             if c_next is NULL:             # <<<<<<<<<<<<<<
@@ -31285,7 +31212,7 @@ static int __pyx_f_4lxml_5etree__deleteSlice(struct LxmlDocument *__pyx_v_doc, x
       __pyx_t_1 = ((__pyx_v_c_next == NULL) != 0);
       if (__pyx_t_1) {
 
-        /* "src/lxml/apihelpers.pxi":1164
+        /* "src/lxml/apihelpers.pxi":1159
  *             c_next = next_element(c_next)
  *             if c_next is NULL:
  *                 break             # <<<<<<<<<<<<<<
@@ -31294,7 +31221,7 @@ static int __pyx_f_4lxml_5etree__deleteSlice(struct LxmlDocument *__pyx_v_doc, x
  */
         goto __pyx_L10_break;
 
-        /* "src/lxml/apihelpers.pxi":1163
+        /* "src/lxml/apihelpers.pxi":1158
  *         for i in range(step):
  *             c_next = next_element(c_next)
  *             if c_next is NULL:             # <<<<<<<<<<<<<<
@@ -31305,16 +31232,16 @@ static int __pyx_f_4lxml_5etree__deleteSlice(struct LxmlDocument *__pyx_v_doc, x
     }
     __pyx_L10_break:;
 
-    /* "src/lxml/apihelpers.pxi":1165
+    /* "src/lxml/apihelpers.pxi":1160
  *             if c_next is NULL:
  *                 break
  *         _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 == ((int)-1))) __PYX_ERR(5, 1165, __pyx_L1_error)
+    __pyx_t_6 = __pyx_f_4lxml_5etree__removeNode(__pyx_v_doc, __pyx_v_c_node); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(5, 1160, __pyx_L1_error)
 
-    /* "src/lxml/apihelpers.pxi":1166
+    /* "src/lxml/apihelpers.pxi":1161
  *                 break
  *         _removeNode(doc, c_node)
  *         c += 1             # <<<<<<<<<<<<<<
@@ -31323,7 +31250,7 @@ static int __pyx_f_4lxml_5etree__deleteSlice(struct LxmlDocument *__pyx_v_doc, x
  */
     __pyx_v_c = (__pyx_v_c + 1);
 
-    /* "src/lxml/apihelpers.pxi":1167
+    /* "src/lxml/apihelpers.pxi":1162
  *         _removeNode(doc, c_node)
  *         c += 1
  *         c_node = c_next             # <<<<<<<<<<<<<<
@@ -31333,7 +31260,7 @@ static int __pyx_f_4lxml_5etree__deleteSlice(struct LxmlDocument *__pyx_v_doc, x
     __pyx_v_c_node = __pyx_v_c_next;
   }
 
-  /* "src/lxml/apihelpers.pxi":1168
+  /* "src/lxml/apihelpers.pxi":1163
  *         c += 1
  *         c_node = c_next
  *     return 0             # <<<<<<<<<<<<<<
@@ -31343,7 +31270,7 @@ static int __pyx_f_4lxml_5etree__deleteSlice(struct LxmlDocument *__pyx_v_doc, x
   __pyx_r = 0;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":1142
+  /* "src/lxml/apihelpers.pxi":1137
  *         tree.xmlAddNextSibling(c_target, c_copy)
  * 
  * cdef int _deleteSlice(_Document doc, xmlNode* c_node,             # <<<<<<<<<<<<<<
@@ -31360,7 +31287,7 @@ static int __pyx_f_4lxml_5etree__deleteSlice(struct LxmlDocument *__pyx_v_doc, x
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":1170
+/* "src/lxml/apihelpers.pxi":1165
  *     return 0
  * 
  * cdef int _replaceSlice(_Element parent, xmlNode* c_node,             # <<<<<<<<<<<<<<
@@ -31396,7 +31323,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
   __Pyx_RefNannySetupContext("_replaceSlice", 0);
   __Pyx_INCREF(__pyx_v_elements);
 
-  /* "src/lxml/apihelpers.pxi":1185
+  /* "src/lxml/apihelpers.pxi":1180
  *     cdef Py_ssize_t seqlength, i, c
  *     cdef _node_to_node_function next_element
  *     assert step > 0             # <<<<<<<<<<<<<<
@@ -31407,12 +31334,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_ERR(5, 1185, __pyx_L1_error)
+      __PYX_ERR(5, 1180, __pyx_L1_error)
     }
   }
   #endif
 
-  /* "src/lxml/apihelpers.pxi":1186
+  /* "src/lxml/apihelpers.pxi":1181
  *     cdef _node_to_node_function next_element
  *     assert step > 0
  *     if left_to_right:             # <<<<<<<<<<<<<<
@@ -31422,7 +31349,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) {
 
-    /* "src/lxml/apihelpers.pxi":1187
+    /* "src/lxml/apihelpers.pxi":1182
  *     assert step > 0
  *     if left_to_right:
  *         next_element = _nextElement             # <<<<<<<<<<<<<<
@@ -31431,7 +31358,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  */
     __pyx_v_next_element = __pyx_f_4lxml_5etree__nextElement;
 
-    /* "src/lxml/apihelpers.pxi":1186
+    /* "src/lxml/apihelpers.pxi":1181
  *     cdef _node_to_node_function next_element
  *     assert step > 0
  *     if left_to_right:             # <<<<<<<<<<<<<<
@@ -31441,7 +31368,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
     goto __pyx_L3;
   }
 
-  /* "src/lxml/apihelpers.pxi":1189
+  /* "src/lxml/apihelpers.pxi":1184
  *         next_element = _nextElement
  *     else:
  *         next_element = _previousElement             # <<<<<<<<<<<<<<
@@ -31453,7 +31380,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
   }
   __pyx_L3:;
 
-  /* "src/lxml/apihelpers.pxi":1191
+  /* "src/lxml/apihelpers.pxi":1186
  *         next_element = _previousElement
  * 
  *     if not isinstance(elements, (list, tuple)):             # <<<<<<<<<<<<<<
@@ -31474,19 +31401,19 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
   __pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0);
   if (__pyx_t_2) {
 
-    /* "src/lxml/apihelpers.pxi":1192
+    /* "src/lxml/apihelpers.pxi":1187
  * 
  *     if not isinstance(elements, (list, tuple)):
  *         elements = list(elements)             # <<<<<<<<<<<<<<
  * 
  *     if step != 1 or not left_to_right:
  */
-    __pyx_t_4 = PySequence_List(__pyx_v_elements); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1192, __pyx_L1_error)
+    __pyx_t_4 = PySequence_List(__pyx_v_elements); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1187, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_4);
     __Pyx_DECREF_SET(__pyx_v_elements, __pyx_t_4);
     __pyx_t_4 = 0;
 
-    /* "src/lxml/apihelpers.pxi":1191
+    /* "src/lxml/apihelpers.pxi":1186
  *         next_element = _previousElement
  * 
  *     if not isinstance(elements, (list, tuple)):             # <<<<<<<<<<<<<<
@@ -31495,7 +31422,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":1194
+  /* "src/lxml/apihelpers.pxi":1189
  *         elements = list(elements)
  * 
  *     if step != 1 or not left_to_right:             # <<<<<<<<<<<<<<
@@ -31513,17 +31440,17 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
   __pyx_L8_bool_binop_done:;
   if (__pyx_t_2) {
 
-    /* "src/lxml/apihelpers.pxi":1196
+    /* "src/lxml/apihelpers.pxi":1191
  *     if step != 1 or not left_to_right:
  *         # *replacing* children stepwise with list => check size!
  *         seqlength = len(elements)             # <<<<<<<<<<<<<<
  *         if seqlength != slicelength:
  *             raise ValueError, f"attempt to assign sequence of size {seqlength} " \
  */
-    __pyx_t_5 = PyObject_Length(__pyx_v_elements); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(5, 1196, __pyx_L1_error)
+    __pyx_t_5 = PyObject_Length(__pyx_v_elements); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(5, 1191, __pyx_L1_error)
     __pyx_v_seqlength = __pyx_t_5;
 
-    /* "src/lxml/apihelpers.pxi":1197
+    /* "src/lxml/apihelpers.pxi":1192
  *         # *replacing* children stepwise with list => check size!
  *         seqlength = len(elements)
  *         if seqlength != slicelength:             # <<<<<<<<<<<<<<
@@ -31533,14 +31460,14 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
     __pyx_t_2 = ((__pyx_v_seqlength != __pyx_v_slicelength) != 0);
     if (unlikely(__pyx_t_2)) {
 
-      /* "src/lxml/apihelpers.pxi":1198
+      /* "src/lxml/apihelpers.pxi":1193
  *         seqlength = len(elements)
  *         if seqlength != slicelength:
  *             raise ValueError, f"attempt to assign sequence of size {seqlength} " \             # <<<<<<<<<<<<<<
  *                 f"to extended slice of size {slicelength}"
  * 
  */
-      __pyx_t_4 = PyTuple_New(4); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1198, __pyx_L1_error)
+      __pyx_t_4 = PyTuple_New(4); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1193, __pyx_L1_error)
       __Pyx_GOTREF(__pyx_t_4);
       __pyx_t_5 = 0;
       __pyx_t_6 = 127;
@@ -31548,7 +31475,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
       __pyx_t_5 += 35;
       __Pyx_GIVEREF(__pyx_kp_u_attempt_to_assign_sequence_of_si);
       PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_kp_u_attempt_to_assign_sequence_of_si);
-      __pyx_t_7 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_v_seqlength, 0, ' ', 'd'); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 1198, __pyx_L1_error)
+      __pyx_t_7 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_v_seqlength, 0, ' ', 'd'); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 1193, __pyx_L1_error)
       __Pyx_GOTREF(__pyx_t_7);
       __pyx_t_5 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_7);
       __Pyx_GIVEREF(__pyx_t_7);
@@ -31559,35 +31486,35 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
       __Pyx_GIVEREF(__pyx_kp_u_to_extended_slice_of_size);
       PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_kp_u_to_extended_slice_of_size);
 
-      /* "src/lxml/apihelpers.pxi":1199
+      /* "src/lxml/apihelpers.pxi":1194
  *         if seqlength != slicelength:
  *             raise ValueError, f"attempt to assign sequence of size {seqlength} " \
  *                 f"to extended slice of size {slicelength}"             # <<<<<<<<<<<<<<
  * 
  *     if c_node is NULL:
  */
-      __pyx_t_7 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_v_slicelength, 0, ' ', 'd'); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 1199, __pyx_L1_error)
+      __pyx_t_7 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_v_slicelength, 0, ' ', 'd'); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 1194, __pyx_L1_error)
       __Pyx_GOTREF(__pyx_t_7);
       __pyx_t_5 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_7);
       __Pyx_GIVEREF(__pyx_t_7);
       PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_t_7);
       __pyx_t_7 = 0;
 
-      /* "src/lxml/apihelpers.pxi":1198
+      /* "src/lxml/apihelpers.pxi":1193
  *         seqlength = len(elements)
  *         if seqlength != slicelength:
  *             raise ValueError, f"attempt to assign sequence of size {seqlength} " \             # <<<<<<<<<<<<<<
  *                 f"to extended slice of size {slicelength}"
  * 
  */
-      __pyx_t_7 = __Pyx_PyUnicode_Join(__pyx_t_4, 4, __pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 1198, __pyx_L1_error)
+      __pyx_t_7 = __Pyx_PyUnicode_Join(__pyx_t_4, 4, __pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 1193, __pyx_L1_error)
       __Pyx_GOTREF(__pyx_t_7);
       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
       __Pyx_Raise(__pyx_builtin_ValueError, __pyx_t_7, 0, 0);
       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
-      __PYX_ERR(5, 1198, __pyx_L1_error)
+      __PYX_ERR(5, 1193, __pyx_L1_error)
 
-      /* "src/lxml/apihelpers.pxi":1197
+      /* "src/lxml/apihelpers.pxi":1192
  *         # *replacing* children stepwise with list => check size!
  *         seqlength = len(elements)
  *         if seqlength != slicelength:             # <<<<<<<<<<<<<<
@@ -31596,7 +31523,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  */
     }
 
-    /* "src/lxml/apihelpers.pxi":1194
+    /* "src/lxml/apihelpers.pxi":1189
  *         elements = list(elements)
  * 
  *     if step != 1 or not left_to_right:             # <<<<<<<<<<<<<<
@@ -31605,7 +31532,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":1201
+  /* "src/lxml/apihelpers.pxi":1196
  *                 f"to extended slice of size {slicelength}"
  * 
  *     if c_node is NULL:             # <<<<<<<<<<<<<<
@@ -31615,7 +31542,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) {
 
-    /* "src/lxml/apihelpers.pxi":1203
+    /* "src/lxml/apihelpers.pxi":1198
  *     if c_node is NULL:
  *         # no children yet => add all elements straight away
  *         if left_to_right:             # <<<<<<<<<<<<<<
@@ -31625,7 +31552,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) {
 
-      /* "src/lxml/apihelpers.pxi":1204
+      /* "src/lxml/apihelpers.pxi":1199
  *         # no children yet => add all elements straight away
  *         if left_to_right:
  *             for element in elements:             # <<<<<<<<<<<<<<
@@ -31636,26 +31563,26 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
         __pyx_t_7 = __pyx_v_elements; __Pyx_INCREF(__pyx_t_7); __pyx_t_5 = 0;
         __pyx_t_8 = NULL;
       } else {
-        __pyx_t_5 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_v_elements); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 1204, __pyx_L1_error)
+        __pyx_t_5 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_v_elements); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 1199, __pyx_L1_error)
         __Pyx_GOTREF(__pyx_t_7);
-        __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 1204, __pyx_L1_error)
+        __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 1199, __pyx_L1_error)
       }
       for (;;) {
         if (likely(!__pyx_t_8)) {
           if (likely(PyList_CheckExact(__pyx_t_7))) {
             if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_7)) break;
             #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
-            __pyx_t_4 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(5, 1204, __pyx_L1_error)
+            __pyx_t_4 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(5, 1199, __pyx_L1_error)
             #else
-            __pyx_t_4 = PySequence_ITEM(__pyx_t_7, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1204, __pyx_L1_error)
+            __pyx_t_4 = PySequence_ITEM(__pyx_t_7, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1199, __pyx_L1_error)
             __Pyx_GOTREF(__pyx_t_4);
             #endif
           } else {
             if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
             #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
-            __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(5, 1204, __pyx_L1_error)
+            __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(5, 1199, __pyx_L1_error)
             #else
-            __pyx_t_4 = PySequence_ITEM(__pyx_t_7, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1204, __pyx_L1_error)
+            __pyx_t_4 = PySequence_ITEM(__pyx_t_7, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1199, __pyx_L1_error)
             __Pyx_GOTREF(__pyx_t_4);
             #endif
           }
@@ -31665,17 +31592,17 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
             PyObject* exc_type = PyErr_Occurred();
             if (exc_type) {
               if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
-              else __PYX_ERR(5, 1204, __pyx_L1_error)
+              else __PYX_ERR(5, 1199, __pyx_L1_error)
             }
             break;
           }
           __Pyx_GOTREF(__pyx_t_4);
         }
-        if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4lxml_5etree__Element))))) __PYX_ERR(5, 1204, __pyx_L1_error)
+        if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4lxml_5etree__Element))))) __PYX_ERR(5, 1199, __pyx_L1_error)
         __Pyx_XDECREF_SET(__pyx_v_element, ((struct LxmlElement *)__pyx_t_4));
         __pyx_t_4 = 0;
 
-        /* "src/lxml/apihelpers.pxi":1205
+        /* "src/lxml/apihelpers.pxi":1200
  *         if left_to_right:
  *             for element in elements:
  *                 assert element is not None, u"Node must not be None"             # <<<<<<<<<<<<<<
@@ -31687,21 +31614,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_ERR(5, 1205, __pyx_L1_error)
+            __PYX_ERR(5, 1200, __pyx_L1_error)
           }
         }
         #endif
 
-        /* "src/lxml/apihelpers.pxi":1206
+        /* "src/lxml/apihelpers.pxi":1201
  *             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 == ((int)-1))) __PYX_ERR(5, 1206, __pyx_L1_error)
+        __pyx_t_9 = __pyx_f_4lxml_5etree__appendChild(__pyx_v_parent, __pyx_v_element); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(5, 1201, __pyx_L1_error)
 
-        /* "src/lxml/apihelpers.pxi":1204
+        /* "src/lxml/apihelpers.pxi":1199
  *         # no children yet => add all elements straight away
  *         if left_to_right:
  *             for element in elements:             # <<<<<<<<<<<<<<
@@ -31711,7 +31638,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
       }
       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 
-      /* "src/lxml/apihelpers.pxi":1203
+      /* "src/lxml/apihelpers.pxi":1198
  *     if c_node is NULL:
  *         # no children yet => add all elements straight away
  *         if left_to_right:             # <<<<<<<<<<<<<<
@@ -31721,7 +31648,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
       goto __pyx_L12;
     }
 
-    /* "src/lxml/apihelpers.pxi":1208
+    /* "src/lxml/apihelpers.pxi":1203
  *                 _appendChild(parent, element)
  *         else:
  *             for element in elements:             # <<<<<<<<<<<<<<
@@ -31733,26 +31660,26 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
         __pyx_t_7 = __pyx_v_elements; __Pyx_INCREF(__pyx_t_7); __pyx_t_5 = 0;
         __pyx_t_8 = NULL;
       } else {
-        __pyx_t_5 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_v_elements); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 1208, __pyx_L1_error)
+        __pyx_t_5 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_v_elements); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 1203, __pyx_L1_error)
         __Pyx_GOTREF(__pyx_t_7);
-        __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 1208, __pyx_L1_error)
+        __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 1203, __pyx_L1_error)
       }
       for (;;) {
         if (likely(!__pyx_t_8)) {
           if (likely(PyList_CheckExact(__pyx_t_7))) {
             if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_7)) break;
             #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
-            __pyx_t_4 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(5, 1208, __pyx_L1_error)
+            __pyx_t_4 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(5, 1203, __pyx_L1_error)
             #else
-            __pyx_t_4 = PySequence_ITEM(__pyx_t_7, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1208, __pyx_L1_error)
+            __pyx_t_4 = PySequence_ITEM(__pyx_t_7, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1203, __pyx_L1_error)
             __Pyx_GOTREF(__pyx_t_4);
             #endif
           } else {
             if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
             #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
-            __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(5, 1208, __pyx_L1_error)
+            __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(5, 1203, __pyx_L1_error)
             #else
-            __pyx_t_4 = PySequence_ITEM(__pyx_t_7, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1208, __pyx_L1_error)
+            __pyx_t_4 = PySequence_ITEM(__pyx_t_7, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1203, __pyx_L1_error)
             __Pyx_GOTREF(__pyx_t_4);
             #endif
           }
@@ -31762,17 +31689,17 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
             PyObject* exc_type = PyErr_Occurred();
             if (exc_type) {
               if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
-              else __PYX_ERR(5, 1208, __pyx_L1_error)
+              else __PYX_ERR(5, 1203, __pyx_L1_error)
             }
             break;
           }
           __Pyx_GOTREF(__pyx_t_4);
         }
-        if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4lxml_5etree__Element))))) __PYX_ERR(5, 1208, __pyx_L1_error)
+        if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4lxml_5etree__Element))))) __PYX_ERR(5, 1203, __pyx_L1_error)
         __Pyx_XDECREF_SET(__pyx_v_element, ((struct LxmlElement *)__pyx_t_4));
         __pyx_t_4 = 0;
 
-        /* "src/lxml/apihelpers.pxi":1209
+        /* "src/lxml/apihelpers.pxi":1204
  *         else:
  *             for element in elements:
  *                 assert element is not None, u"Node must not be None"             # <<<<<<<<<<<<<<
@@ -31784,21 +31711,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_ERR(5, 1209, __pyx_L1_error)
+            __PYX_ERR(5, 1204, __pyx_L1_error)
           }
         }
         #endif
 
-        /* "src/lxml/apihelpers.pxi":1210
+        /* "src/lxml/apihelpers.pxi":1205
  *             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 == ((int)-1))) __PYX_ERR(5, 1210, __pyx_L1_error)
+        __pyx_t_9 = __pyx_f_4lxml_5etree__prependChild(__pyx_v_parent, __pyx_v_element); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(5, 1205, __pyx_L1_error)
 
-        /* "src/lxml/apihelpers.pxi":1208
+        /* "src/lxml/apihelpers.pxi":1203
  *                 _appendChild(parent, element)
  *         else:
  *             for element in elements:             # <<<<<<<<<<<<<<
@@ -31810,7 +31737,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
     }
     __pyx_L12:;
 
-    /* "src/lxml/apihelpers.pxi":1211
+    /* "src/lxml/apihelpers.pxi":1206
  *                 assert element is not None, u"Node must not be None"
  *                 _prependChild(parent, element)
  *         return 0             # <<<<<<<<<<<<<<
@@ -31820,7 +31747,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
     __pyx_r = 0;
     goto __pyx_L0;
 
-    /* "src/lxml/apihelpers.pxi":1201
+    /* "src/lxml/apihelpers.pxi":1196
  *                 f"to extended slice of size {slicelength}"
  * 
  *     if c_node is NULL:             # <<<<<<<<<<<<<<
@@ -31829,7 +31756,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":1214
+  /* "src/lxml/apihelpers.pxi":1209
  * 
  *     # remove the elements first as some might be re-added
  *     if left_to_right:             # <<<<<<<<<<<<<<
@@ -31839,7 +31766,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) {
 
-    /* "src/lxml/apihelpers.pxi":1216
+    /* "src/lxml/apihelpers.pxi":1211
  *     if left_to_right:
  *         # L->R, remember left neighbour
  *         c_orig_neighbour = _previousElement(c_node)             # <<<<<<<<<<<<<<
@@ -31848,7 +31775,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  */
     __pyx_v_c_orig_neighbour = __pyx_f_4lxml_5etree__previousElement(__pyx_v_c_node);
 
-    /* "src/lxml/apihelpers.pxi":1214
+    /* "src/lxml/apihelpers.pxi":1209
  * 
  *     # remove the elements first as some might be re-added
  *     if left_to_right:             # <<<<<<<<<<<<<<
@@ -31858,7 +31785,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
     goto __pyx_L17;
   }
 
-  /* "src/lxml/apihelpers.pxi":1219
+  /* "src/lxml/apihelpers.pxi":1214
  *     else:
  *         # R->L, remember right neighbour
  *         c_orig_neighbour = _nextElement(c_node)             # <<<<<<<<<<<<<<
@@ -31870,7 +31797,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
   }
   __pyx_L17:;
 
-  /* "src/lxml/apihelpers.pxi":1225
+  /* "src/lxml/apihelpers.pxi":1220
  *     # 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             # <<<<<<<<<<<<<<
@@ -31879,7 +31806,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  */
   __pyx_v_c = 0;
 
-  /* "src/lxml/apihelpers.pxi":1226
+  /* "src/lxml/apihelpers.pxi":1221
  *     # the element itself or one of its descendents will be reinserted.
  *     c = 0
  *     c_next = c_node             # <<<<<<<<<<<<<<
@@ -31888,7 +31815,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  */
   __pyx_v_c_next = __pyx_v_c_node;
 
-  /* "src/lxml/apihelpers.pxi":1227
+  /* "src/lxml/apihelpers.pxi":1222
  *     c = 0
  *     c_next = c_node
  *     while c_node is not NULL and c < slicelength:             # <<<<<<<<<<<<<<
@@ -31907,7 +31834,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
     __pyx_L20_bool_binop_done:;
     if (!__pyx_t_2) break;
 
-    /* "src/lxml/apihelpers.pxi":1228
+    /* "src/lxml/apihelpers.pxi":1223
  *     c_next = c_node
  *     while c_node is not NULL and c < slicelength:
  *         for i in range(step):             # <<<<<<<<<<<<<<
@@ -31919,7 +31846,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
     for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
       __pyx_v_i = __pyx_t_11;
 
-      /* "src/lxml/apihelpers.pxi":1229
+      /* "src/lxml/apihelpers.pxi":1224
  *     while c_node is not NULL and c < slicelength:
  *         for i in range(step):
  *             c_next = next_element(c_next)             # <<<<<<<<<<<<<<
@@ -31928,7 +31855,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);
 
-      /* "src/lxml/apihelpers.pxi":1230
+      /* "src/lxml/apihelpers.pxi":1225
  *         for i in range(step):
  *             c_next = next_element(c_next)
  *             if c_next is NULL:             # <<<<<<<<<<<<<<
@@ -31938,7 +31865,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
       __pyx_t_2 = ((__pyx_v_c_next == NULL) != 0);
       if (__pyx_t_2) {
 
-        /* "src/lxml/apihelpers.pxi":1231
+        /* "src/lxml/apihelpers.pxi":1226
  *             c_next = next_element(c_next)
  *             if c_next is NULL:
  *                 break             # <<<<<<<<<<<<<<
@@ -31947,7 +31874,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  */
         goto __pyx_L23_break;
 
-        /* "src/lxml/apihelpers.pxi":1230
+        /* "src/lxml/apihelpers.pxi":1225
  *         for i in range(step):
  *             c_next = next_element(c_next)
  *             if c_next is NULL:             # <<<<<<<<<<<<<<
@@ -31958,7 +31885,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
     }
     __pyx_L23_break:;
 
-    /* "src/lxml/apihelpers.pxi":1232
+    /* "src/lxml/apihelpers.pxi":1227
  *             if c_next is NULL:
  *                 break
  *         _removeNode(parent._doc, c_node)             # <<<<<<<<<<<<<<
@@ -31967,10 +31894,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__removeNode(((struct LxmlDocument *)__pyx_t_7), __pyx_v_c_node); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(5, 1232, __pyx_L1_error)
+    __pyx_t_9 = __pyx_f_4lxml_5etree__removeNode(((struct LxmlDocument *)__pyx_t_7), __pyx_v_c_node); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(5, 1227, __pyx_L1_error)
     __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 
-    /* "src/lxml/apihelpers.pxi":1233
+    /* "src/lxml/apihelpers.pxi":1228
  *                 break
  *         _removeNode(parent._doc, c_node)
  *         c += 1             # <<<<<<<<<<<<<<
@@ -31979,7 +31906,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  */
     __pyx_v_c = (__pyx_v_c + 1);
 
-    /* "src/lxml/apihelpers.pxi":1234
+    /* "src/lxml/apihelpers.pxi":1229
  *         _removeNode(parent._doc, c_node)
  *         c += 1
  *         c_node = c_next             # <<<<<<<<<<<<<<
@@ -31989,19 +31916,19 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
     __pyx_v_c_node = __pyx_v_c_next;
   }
 
-  /* "src/lxml/apihelpers.pxi":1237
+  /* "src/lxml/apihelpers.pxi":1232
  * 
  *     # make sure each element is inserted only once
  *     elements = iter(elements)             # <<<<<<<<<<<<<<
  * 
  *     # find the first node right of the new insertion point
  */
-  __pyx_t_7 = PyObject_GetIter(__pyx_v_elements); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 1237, __pyx_L1_error)
+  __pyx_t_7 = PyObject_GetIter(__pyx_v_elements); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 1232, __pyx_L1_error)
   __Pyx_GOTREF(__pyx_t_7);
   __Pyx_DECREF_SET(__pyx_v_elements, __pyx_t_7);
   __pyx_t_7 = 0;
 
-  /* "src/lxml/apihelpers.pxi":1240
+  /* "src/lxml/apihelpers.pxi":1235
  * 
  *     # find the first node right of the new insertion point
  *     if left_to_right:             # <<<<<<<<<<<<<<
@@ -32011,7 +31938,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) {
 
-    /* "src/lxml/apihelpers.pxi":1241
+    /* "src/lxml/apihelpers.pxi":1236
  *     # find the first node right of the new insertion point
  *     if left_to_right:
  *         if c_orig_neighbour is not NULL:             # <<<<<<<<<<<<<<
@@ -32021,7 +31948,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) {
 
-      /* "src/lxml/apihelpers.pxi":1242
+      /* "src/lxml/apihelpers.pxi":1237
  *     if left_to_right:
  *         if c_orig_neighbour is not NULL:
  *             c_node = next_element(c_orig_neighbour)             # <<<<<<<<<<<<<<
@@ -32030,7 +31957,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  */
       __pyx_v_c_node = __pyx_v_next_element(__pyx_v_c_orig_neighbour);
 
-      /* "src/lxml/apihelpers.pxi":1241
+      /* "src/lxml/apihelpers.pxi":1236
  *     # find the first node right of the new insertion point
  *     if left_to_right:
  *         if c_orig_neighbour is not NULL:             # <<<<<<<<<<<<<<
@@ -32040,7 +31967,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
       goto __pyx_L26;
     }
 
-    /* "src/lxml/apihelpers.pxi":1245
+    /* "src/lxml/apihelpers.pxi":1240
  *         else:
  *             # before the first element
  *             c_node = _findChildForwards(parent._c_node, 0)             # <<<<<<<<<<<<<<
@@ -32052,7 +31979,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
     }
     __pyx_L26:;
 
-    /* "src/lxml/apihelpers.pxi":1240
+    /* "src/lxml/apihelpers.pxi":1235
  * 
  *     # find the first node right of the new insertion point
  *     if left_to_right:             # <<<<<<<<<<<<<<
@@ -32062,7 +31989,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
     goto __pyx_L25;
   }
 
-  /* "src/lxml/apihelpers.pxi":1246
+  /* "src/lxml/apihelpers.pxi":1241
  *             # before the first element
  *             c_node = _findChildForwards(parent._c_node, 0)
  *     elif c_orig_neighbour is NULL:             # <<<<<<<<<<<<<<
@@ -32072,7 +31999,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) {
 
-    /* "src/lxml/apihelpers.pxi":1249
+    /* "src/lxml/apihelpers.pxi":1244
  *         # at the end, but reversed stepping
  *         # append one element and go to the next insertion point
  *         for element in elements:             # <<<<<<<<<<<<<<
@@ -32083,26 +32010,26 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
       __pyx_t_7 = __pyx_v_elements; __Pyx_INCREF(__pyx_t_7); __pyx_t_5 = 0;
       __pyx_t_8 = NULL;
     } else {
-      __pyx_t_5 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_v_elements); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 1249, __pyx_L1_error)
+      __pyx_t_5 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_v_elements); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 1244, __pyx_L1_error)
       __Pyx_GOTREF(__pyx_t_7);
-      __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 1249, __pyx_L1_error)
+      __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 1244, __pyx_L1_error)
     }
     for (;;) {
       if (likely(!__pyx_t_8)) {
         if (likely(PyList_CheckExact(__pyx_t_7))) {
           if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_7)) break;
           #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
-          __pyx_t_4 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(5, 1249, __pyx_L1_error)
+          __pyx_t_4 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(5, 1244, __pyx_L1_error)
           #else
-          __pyx_t_4 = PySequence_ITEM(__pyx_t_7, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1249, __pyx_L1_error)
+          __pyx_t_4 = PySequence_ITEM(__pyx_t_7, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1244, __pyx_L1_error)
           __Pyx_GOTREF(__pyx_t_4);
           #endif
         } else {
           if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
           #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
-          __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(5, 1249, __pyx_L1_error)
+          __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(5, 1244, __pyx_L1_error)
           #else
-          __pyx_t_4 = PySequence_ITEM(__pyx_t_7, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1249, __pyx_L1_error)
+          __pyx_t_4 = PySequence_ITEM(__pyx_t_7, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1244, __pyx_L1_error)
           __Pyx_GOTREF(__pyx_t_4);
           #endif
         }
@@ -32112,17 +32039,17 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
           PyObject* exc_type = PyErr_Occurred();
           if (exc_type) {
             if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
-            else __PYX_ERR(5, 1249, __pyx_L1_error)
+            else __PYX_ERR(5, 1244, __pyx_L1_error)
           }
           break;
         }
         __Pyx_GOTREF(__pyx_t_4);
       }
-      if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4lxml_5etree__Element))))) __PYX_ERR(5, 1249, __pyx_L1_error)
+      if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4lxml_5etree__Element))))) __PYX_ERR(5, 1244, __pyx_L1_error)
       __pyx_v_element = ((struct LxmlElement *)__pyx_t_4);
       __pyx_t_4 = 0;
 
-      /* "src/lxml/apihelpers.pxi":1250
+      /* "src/lxml/apihelpers.pxi":1245
  *         # 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"             # <<<<<<<<<<<<<<
@@ -32134,21 +32061,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_ERR(5, 1250, __pyx_L1_error)
+          __PYX_ERR(5, 1245, __pyx_L1_error)
         }
       }
       #endif
 
-      /* "src/lxml/apihelpers.pxi":1251
+      /* "src/lxml/apihelpers.pxi":1246
  *         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 == ((int)-1))) __PYX_ERR(5, 1251, __pyx_L1_error)
+      __pyx_t_9 = __pyx_f_4lxml_5etree__appendChild(__pyx_v_parent, __pyx_v_element); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(5, 1246, __pyx_L1_error)
 
-      /* "src/lxml/apihelpers.pxi":1252
+      /* "src/lxml/apihelpers.pxi":1247
  *             assert element is not None, u"Node must not be None"
  *             _appendChild(parent, element)
  *             c_node = element._c_node             # <<<<<<<<<<<<<<
@@ -32158,7 +32085,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
       __pyx_t_12 = __pyx_v_element->_c_node;
       __pyx_v_c_node = __pyx_t_12;
 
-      /* "src/lxml/apihelpers.pxi":1253
+      /* "src/lxml/apihelpers.pxi":1248
  *             _appendChild(parent, element)
  *             c_node = element._c_node
  *             if slicelength > 0:             # <<<<<<<<<<<<<<
@@ -32168,7 +32095,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) {
 
-        /* "src/lxml/apihelpers.pxi":1254
+        /* "src/lxml/apihelpers.pxi":1249
  *             c_node = element._c_node
  *             if slicelength > 0:
  *                 slicelength -= 1             # <<<<<<<<<<<<<<
@@ -32177,7 +32104,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  */
         __pyx_v_slicelength = (__pyx_v_slicelength - 1);
 
-        /* "src/lxml/apihelpers.pxi":1255
+        /* "src/lxml/apihelpers.pxi":1250
  *             if slicelength > 0:
  *                 slicelength -= 1
  *                 for i in range(1, step):             # <<<<<<<<<<<<<<
@@ -32189,7 +32116,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
         for (__pyx_t_13 = 1; __pyx_t_13 < __pyx_t_11; __pyx_t_13+=1) {
           __pyx_v_i = __pyx_t_13;
 
-          /* "src/lxml/apihelpers.pxi":1256
+          /* "src/lxml/apihelpers.pxi":1251
  *                 slicelength -= 1
  *                 for i in range(1, step):
  *                     c_node = next_element(c_node)             # <<<<<<<<<<<<<<
@@ -32198,7 +32125,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);
 
-          /* "src/lxml/apihelpers.pxi":1257
+          /* "src/lxml/apihelpers.pxi":1252
  *                 for i in range(1, step):
  *                     c_node = next_element(c_node)
  *                     if c_node is NULL:             # <<<<<<<<<<<<<<
@@ -32208,7 +32135,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) {
 
-            /* "src/lxml/apihelpers.pxi":1258
+            /* "src/lxml/apihelpers.pxi":1253
  *                     c_node = next_element(c_node)
  *                     if c_node is NULL:
  *                         break             # <<<<<<<<<<<<<<
@@ -32217,7 +32144,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  */
             goto __pyx_L31_break;
 
-            /* "src/lxml/apihelpers.pxi":1257
+            /* "src/lxml/apihelpers.pxi":1252
  *                 for i in range(1, step):
  *                     c_node = next_element(c_node)
  *                     if c_node is NULL:             # <<<<<<<<<<<<<<
@@ -32228,7 +32155,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
         }
         __pyx_L31_break:;
 
-        /* "src/lxml/apihelpers.pxi":1253
+        /* "src/lxml/apihelpers.pxi":1248
  *             _appendChild(parent, element)
  *             c_node = element._c_node
  *             if slicelength > 0:             # <<<<<<<<<<<<<<
@@ -32237,7 +32164,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  */
       }
 
-      /* "src/lxml/apihelpers.pxi":1259
+      /* "src/lxml/apihelpers.pxi":1254
  *                     if c_node is NULL:
  *                         break
  *             break             # <<<<<<<<<<<<<<
@@ -32246,7 +32173,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  */
       goto __pyx_L28_break;
 
-      /* "src/lxml/apihelpers.pxi":1249
+      /* "src/lxml/apihelpers.pxi":1244
  *         # at the end, but reversed stepping
  *         # append one element and go to the next insertion point
  *         for element in elements:             # <<<<<<<<<<<<<<
@@ -32257,7 +32184,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
     __pyx_L28_break:;
     __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 
-    /* "src/lxml/apihelpers.pxi":1246
+    /* "src/lxml/apihelpers.pxi":1241
  *             # before the first element
  *             c_node = _findChildForwards(parent._c_node, 0)
  *     elif c_orig_neighbour is NULL:             # <<<<<<<<<<<<<<
@@ -32267,7 +32194,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
     goto __pyx_L25;
   }
 
-  /* "src/lxml/apihelpers.pxi":1261
+  /* "src/lxml/apihelpers.pxi":1256
  *             break
  *     else:
  *         c_node = c_orig_neighbour             # <<<<<<<<<<<<<<
@@ -32279,7 +32206,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
   }
   __pyx_L25:;
 
-  /* "src/lxml/apihelpers.pxi":1263
+  /* "src/lxml/apihelpers.pxi":1258
  *         c_node = c_orig_neighbour
  * 
  *     if left_to_right:             # <<<<<<<<<<<<<<
@@ -32289,7 +32216,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) {
 
-    /* "src/lxml/apihelpers.pxi":1266
+    /* "src/lxml/apihelpers.pxi":1261
  *         # adjust step size after removing slice as we are not stepping
  *         # over the newly inserted elements
  *         step -= 1             # <<<<<<<<<<<<<<
@@ -32298,7 +32225,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  */
     __pyx_v_step = (__pyx_v_step - 1);
 
-    /* "src/lxml/apihelpers.pxi":1263
+    /* "src/lxml/apihelpers.pxi":1258
  *         c_node = c_orig_neighbour
  * 
  *     if left_to_right:             # <<<<<<<<<<<<<<
@@ -32307,7 +32234,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":1269
+  /* "src/lxml/apihelpers.pxi":1264
  * 
  *     # now insert elements where we removed them
  *     if c_node is not NULL:             # <<<<<<<<<<<<<<
@@ -32317,7 +32244,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) {
 
-    /* "src/lxml/apihelpers.pxi":1270
+    /* "src/lxml/apihelpers.pxi":1265
  *     # now insert elements where we removed them
  *     if c_node is not NULL:
  *         for element in elements:             # <<<<<<<<<<<<<<
@@ -32328,26 +32255,26 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
       __pyx_t_7 = __pyx_v_elements; __Pyx_INCREF(__pyx_t_7); __pyx_t_5 = 0;
       __pyx_t_8 = NULL;
     } else {
-      __pyx_t_5 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_v_elements); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 1270, __pyx_L1_error)
+      __pyx_t_5 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_v_elements); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 1265, __pyx_L1_error)
       __Pyx_GOTREF(__pyx_t_7);
-      __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 1270, __pyx_L1_error)
+      __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 1265, __pyx_L1_error)
     }
     for (;;) {
       if (likely(!__pyx_t_8)) {
         if (likely(PyList_CheckExact(__pyx_t_7))) {
           if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_7)) break;
           #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
-          __pyx_t_4 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(5, 1270, __pyx_L1_error)
+          __pyx_t_4 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(5, 1265, __pyx_L1_error)
           #else
-          __pyx_t_4 = PySequence_ITEM(__pyx_t_7, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1270, __pyx_L1_error)
+          __pyx_t_4 = PySequence_ITEM(__pyx_t_7, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1265, __pyx_L1_error)
           __Pyx_GOTREF(__pyx_t_4);
           #endif
         } else {
           if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
           #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
-          __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(5, 1270, __pyx_L1_error)
+          __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(5, 1265, __pyx_L1_error)
           #else
-          __pyx_t_4 = PySequence_ITEM(__pyx_t_7, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1270, __pyx_L1_error)
+          __pyx_t_4 = PySequence_ITEM(__pyx_t_7, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1265, __pyx_L1_error)
           __Pyx_GOTREF(__pyx_t_4);
           #endif
         }
@@ -32357,17 +32284,17 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
           PyObject* exc_type = PyErr_Occurred();
           if (exc_type) {
             if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
-            else __PYX_ERR(5, 1270, __pyx_L1_error)
+            else __PYX_ERR(5, 1265, __pyx_L1_error)
           }
           break;
         }
         __Pyx_GOTREF(__pyx_t_4);
       }
-      if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4lxml_5etree__Element))))) __PYX_ERR(5, 1270, __pyx_L1_error)
+      if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4lxml_5etree__Element))))) __PYX_ERR(5, 1265, __pyx_L1_error)
       __Pyx_XDECREF_SET(__pyx_v_element, ((struct LxmlElement *)__pyx_t_4));
       __pyx_t_4 = 0;
 
-      /* "src/lxml/apihelpers.pxi":1271
+      /* "src/lxml/apihelpers.pxi":1266
  *     if c_node is not NULL:
  *         for element in elements:
  *             assert element is not None, u"Node must not be None"             # <<<<<<<<<<<<<<
@@ -32379,21 +32306,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_ERR(5, 1271, __pyx_L1_error)
+          __PYX_ERR(5, 1266, __pyx_L1_error)
         }
       }
       #endif
 
-      /* "src/lxml/apihelpers.pxi":1272
+      /* "src/lxml/apihelpers.pxi":1267
  *         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 == ((int)-1))) __PYX_ERR(5, 1272, __pyx_L1_error)
+      __pyx_t_9 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_element); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(5, 1267, __pyx_L1_error)
 
-      /* "src/lxml/apihelpers.pxi":1274
+      /* "src/lxml/apihelpers.pxi":1269
  *             _assertValidNode(element)
  *             # move element and tail over
  *             c_source_doc = element._c_node.doc             # <<<<<<<<<<<<<<
@@ -32403,7 +32330,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
       __pyx_t_14 = __pyx_v_element->_c_node->doc;
       __pyx_v_c_source_doc = __pyx_t_14;
 
-      /* "src/lxml/apihelpers.pxi":1275
+      /* "src/lxml/apihelpers.pxi":1270
  *             # move element and tail over
  *             c_source_doc = element._c_node.doc
  *             c_next = element._c_node.next             # <<<<<<<<<<<<<<
@@ -32413,7 +32340,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
       __pyx_t_12 = __pyx_v_element->_c_node->next;
       __pyx_v_c_next = __pyx_t_12;
 
-      /* "src/lxml/apihelpers.pxi":1276
+      /* "src/lxml/apihelpers.pxi":1271
  *             c_source_doc = element._c_node.doc
  *             c_next = element._c_node.next
  *             tree.xmlAddPrevSibling(c_node, element._c_node)             # <<<<<<<<<<<<<<
@@ -32422,7 +32349,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  */
       (void)(xmlAddPrevSibling(__pyx_v_c_node, __pyx_v_element->_c_node));
 
-      /* "src/lxml/apihelpers.pxi":1277
+      /* "src/lxml/apihelpers.pxi":1272
  *             c_next = element._c_node.next
  *             tree.xmlAddPrevSibling(c_node, element._c_node)
  *             _moveTail(c_next, element._c_node)             # <<<<<<<<<<<<<<
@@ -32431,7 +32358,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);
 
-      /* "src/lxml/apihelpers.pxi":1280
+      /* "src/lxml/apihelpers.pxi":1275
  * 
  *             # integrate element into new document
  *             moveNodeToDocument(parent._doc, c_source_doc, element._c_node)             # <<<<<<<<<<<<<<
@@ -32440,10 +32367,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_moveNodeToDocument(((struct LxmlDocument *)__pyx_t_4), __pyx_v_c_source_doc, __pyx_v_element->_c_node); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(5, 1280, __pyx_L1_error)
+      __pyx_t_9 = __pyx_f_4lxml_5etree_moveNodeToDocument(((struct LxmlDocument *)__pyx_t_4), __pyx_v_c_source_doc, __pyx_v_element->_c_node); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(5, 1275, __pyx_L1_error)
       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
-      /* "src/lxml/apihelpers.pxi":1283
+      /* "src/lxml/apihelpers.pxi":1278
  * 
  *             # stop at the end of the slice
  *             if slicelength > 0:             # <<<<<<<<<<<<<<
@@ -32453,7 +32380,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) {
 
-        /* "src/lxml/apihelpers.pxi":1284
+        /* "src/lxml/apihelpers.pxi":1279
  *             # stop at the end of the slice
  *             if slicelength > 0:
  *                 slicelength -= 1             # <<<<<<<<<<<<<<
@@ -32462,7 +32389,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  */
         __pyx_v_slicelength = (__pyx_v_slicelength - 1);
 
-        /* "src/lxml/apihelpers.pxi":1285
+        /* "src/lxml/apihelpers.pxi":1280
  *             if slicelength > 0:
  *                 slicelength -= 1
  *                 for i in range(step):             # <<<<<<<<<<<<<<
@@ -32474,7 +32401,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
         for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_11; __pyx_t_13+=1) {
           __pyx_v_i = __pyx_t_13;
 
-          /* "src/lxml/apihelpers.pxi":1286
+          /* "src/lxml/apihelpers.pxi":1281
  *                 slicelength -= 1
  *                 for i in range(step):
  *                     c_node = next_element(c_node)             # <<<<<<<<<<<<<<
@@ -32483,7 +32410,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);
 
-          /* "src/lxml/apihelpers.pxi":1287
+          /* "src/lxml/apihelpers.pxi":1282
  *                 for i in range(step):
  *                     c_node = next_element(c_node)
  *                     if c_node is NULL:             # <<<<<<<<<<<<<<
@@ -32493,7 +32420,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) {
 
-            /* "src/lxml/apihelpers.pxi":1288
+            /* "src/lxml/apihelpers.pxi":1283
  *                     c_node = next_element(c_node)
  *                     if c_node is NULL:
  *                         break             # <<<<<<<<<<<<<<
@@ -32502,7 +32429,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  */
             goto __pyx_L39_break;
 
-            /* "src/lxml/apihelpers.pxi":1287
+            /* "src/lxml/apihelpers.pxi":1282
  *                 for i in range(step):
  *                     c_node = next_element(c_node)
  *                     if c_node is NULL:             # <<<<<<<<<<<<<<
@@ -32513,7 +32440,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
         }
         __pyx_L39_break:;
 
-        /* "src/lxml/apihelpers.pxi":1289
+        /* "src/lxml/apihelpers.pxi":1284
  *                     if c_node is NULL:
  *                         break
  *                 if c_node is NULL:             # <<<<<<<<<<<<<<
@@ -32523,7 +32450,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) {
 
-          /* "src/lxml/apihelpers.pxi":1290
+          /* "src/lxml/apihelpers.pxi":1285
  *                         break
  *                 if c_node is NULL:
  *                     break             # <<<<<<<<<<<<<<
@@ -32532,7 +32459,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  */
           goto __pyx_L36_break;
 
-          /* "src/lxml/apihelpers.pxi":1289
+          /* "src/lxml/apihelpers.pxi":1284
  *                     if c_node is NULL:
  *                         break
  *                 if c_node is NULL:             # <<<<<<<<<<<<<<
@@ -32541,7 +32468,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  */
         }
 
-        /* "src/lxml/apihelpers.pxi":1283
+        /* "src/lxml/apihelpers.pxi":1278
  * 
  *             # stop at the end of the slice
  *             if slicelength > 0:             # <<<<<<<<<<<<<<
@@ -32550,7 +32477,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  */
       }
 
-      /* "src/lxml/apihelpers.pxi":1270
+      /* "src/lxml/apihelpers.pxi":1265
  *     # now insert elements where we removed them
  *     if c_node is not NULL:
  *         for element in elements:             # <<<<<<<<<<<<<<
@@ -32560,7 +32487,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
     }
     /*else*/ {
 
-      /* "src/lxml/apihelpers.pxi":1293
+      /* "src/lxml/apihelpers.pxi":1288
  *         else:
  *             # everything inserted
  *             return 0             # <<<<<<<<<<<<<<
@@ -32572,7 +32499,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
       goto __pyx_L0;
     }
 
-    /* "src/lxml/apihelpers.pxi":1270
+    /* "src/lxml/apihelpers.pxi":1265
  *     # now insert elements where we removed them
  *     if c_node is not NULL:
  *         for element in elements:             # <<<<<<<<<<<<<<
@@ -32582,7 +32509,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
     __pyx_L36_break:;
     __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 
-    /* "src/lxml/apihelpers.pxi":1269
+    /* "src/lxml/apihelpers.pxi":1264
  * 
  *     # now insert elements where we removed them
  *     if c_node is not NULL:             # <<<<<<<<<<<<<<
@@ -32591,7 +32518,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":1296
+  /* "src/lxml/apihelpers.pxi":1291
  * 
  *     # append the remaining elements at the respective end
  *     if left_to_right:             # <<<<<<<<<<<<<<
@@ -32601,7 +32528,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) {
 
-    /* "src/lxml/apihelpers.pxi":1297
+    /* "src/lxml/apihelpers.pxi":1292
  *     # append the remaining elements at the respective end
  *     if left_to_right:
  *         for element in elements:             # <<<<<<<<<<<<<<
@@ -32612,26 +32539,26 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
       __pyx_t_7 = __pyx_v_elements; __Pyx_INCREF(__pyx_t_7); __pyx_t_5 = 0;
       __pyx_t_8 = NULL;
     } else {
-      __pyx_t_5 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_v_elements); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 1297, __pyx_L1_error)
+      __pyx_t_5 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_v_elements); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 1292, __pyx_L1_error)
       __Pyx_GOTREF(__pyx_t_7);
-      __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 1297, __pyx_L1_error)
+      __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 1292, __pyx_L1_error)
     }
     for (;;) {
       if (likely(!__pyx_t_8)) {
         if (likely(PyList_CheckExact(__pyx_t_7))) {
           if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_7)) break;
           #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
-          __pyx_t_4 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(5, 1297, __pyx_L1_error)
+          __pyx_t_4 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(5, 1292, __pyx_L1_error)
           #else
-          __pyx_t_4 = PySequence_ITEM(__pyx_t_7, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1297, __pyx_L1_error)
+          __pyx_t_4 = PySequence_ITEM(__pyx_t_7, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1292, __pyx_L1_error)
           __Pyx_GOTREF(__pyx_t_4);
           #endif
         } else {
           if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
           #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
-          __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(5, 1297, __pyx_L1_error)
+          __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(5, 1292, __pyx_L1_error)
           #else
-          __pyx_t_4 = PySequence_ITEM(__pyx_t_7, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1297, __pyx_L1_error)
+          __pyx_t_4 = PySequence_ITEM(__pyx_t_7, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1292, __pyx_L1_error)
           __Pyx_GOTREF(__pyx_t_4);
           #endif
         }
@@ -32641,17 +32568,17 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
           PyObject* exc_type = PyErr_Occurred();
           if (exc_type) {
             if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
-            else __PYX_ERR(5, 1297, __pyx_L1_error)
+            else __PYX_ERR(5, 1292, __pyx_L1_error)
           }
           break;
         }
         __Pyx_GOTREF(__pyx_t_4);
       }
-      if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4lxml_5etree__Element))))) __PYX_ERR(5, 1297, __pyx_L1_error)
+      if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4lxml_5etree__Element))))) __PYX_ERR(5, 1292, __pyx_L1_error)
       __Pyx_XDECREF_SET(__pyx_v_element, ((struct LxmlElement *)__pyx_t_4));
       __pyx_t_4 = 0;
 
-      /* "src/lxml/apihelpers.pxi":1298
+      /* "src/lxml/apihelpers.pxi":1293
  *     if left_to_right:
  *         for element in elements:
  *             assert element is not None, u"Node must not be None"             # <<<<<<<<<<<<<<
@@ -32663,30 +32590,30 @@ 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_ERR(5, 1298, __pyx_L1_error)
+          __PYX_ERR(5, 1293, __pyx_L1_error)
         }
       }
       #endif
 
-      /* "src/lxml/apihelpers.pxi":1299
+      /* "src/lxml/apihelpers.pxi":1294
  *         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 == ((int)-1))) __PYX_ERR(5, 1299, __pyx_L1_error)
+      __pyx_t_9 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_element); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(5, 1294, __pyx_L1_error)
 
-      /* "src/lxml/apihelpers.pxi":1300
+      /* "src/lxml/apihelpers.pxi":1295
  *             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 == ((int)-1))) __PYX_ERR(5, 1300, __pyx_L1_error)
+      __pyx_t_9 = __pyx_f_4lxml_5etree__appendChild(__pyx_v_parent, __pyx_v_element); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(5, 1295, __pyx_L1_error)
 
-      /* "src/lxml/apihelpers.pxi":1297
+      /* "src/lxml/apihelpers.pxi":1292
  *     # append the remaining elements at the respective end
  *     if left_to_right:
  *         for element in elements:             # <<<<<<<<<<<<<<
@@ -32696,7 +32623,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
     }
     __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 
-    /* "src/lxml/apihelpers.pxi":1296
+    /* "src/lxml/apihelpers.pxi":1291
  * 
  *     # append the remaining elements at the respective end
  *     if left_to_right:             # <<<<<<<<<<<<<<
@@ -32706,7 +32633,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
     goto __pyx_L43;
   }
 
-  /* "src/lxml/apihelpers.pxi":1302
+  /* "src/lxml/apihelpers.pxi":1297
  *             _appendChild(parent, element)
  *     else:
  *         for element in elements:             # <<<<<<<<<<<<<<
@@ -32718,26 +32645,26 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
       __pyx_t_7 = __pyx_v_elements; __Pyx_INCREF(__pyx_t_7); __pyx_t_5 = 0;
       __pyx_t_8 = NULL;
     } else {
-      __pyx_t_5 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_v_elements); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 1302, __pyx_L1_error)
+      __pyx_t_5 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_v_elements); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 1297, __pyx_L1_error)
       __Pyx_GOTREF(__pyx_t_7);
-      __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 1302, __pyx_L1_error)
+      __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 1297, __pyx_L1_error)
     }
     for (;;) {
       if (likely(!__pyx_t_8)) {
         if (likely(PyList_CheckExact(__pyx_t_7))) {
           if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_7)) break;
           #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
-          __pyx_t_4 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(5, 1302, __pyx_L1_error)
+          __pyx_t_4 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(5, 1297, __pyx_L1_error)
           #else
-          __pyx_t_4 = PySequence_ITEM(__pyx_t_7, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1302, __pyx_L1_error)
+          __pyx_t_4 = PySequence_ITEM(__pyx_t_7, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1297, __pyx_L1_error)
           __Pyx_GOTREF(__pyx_t_4);
           #endif
         } else {
           if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
           #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
-          __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(5, 1302, __pyx_L1_error)
+          __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(5, 1297, __pyx_L1_error)
           #else
-          __pyx_t_4 = PySequence_ITEM(__pyx_t_7, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1302, __pyx_L1_error)
+          __pyx_t_4 = PySequence_ITEM(__pyx_t_7, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1297, __pyx_L1_error)
           __Pyx_GOTREF(__pyx_t_4);
           #endif
         }
@@ -32747,17 +32674,17 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
           PyObject* exc_type = PyErr_Occurred();
           if (exc_type) {
             if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
-            else __PYX_ERR(5, 1302, __pyx_L1_error)
+            else __PYX_ERR(5, 1297, __pyx_L1_error)
           }
           break;
         }
         __Pyx_GOTREF(__pyx_t_4);
       }
-      if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4lxml_5etree__Element))))) __PYX_ERR(5, 1302, __pyx_L1_error)
+      if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4lxml_5etree__Element))))) __PYX_ERR(5, 1297, __pyx_L1_error)
       __Pyx_XDECREF_SET(__pyx_v_element, ((struct LxmlElement *)__pyx_t_4));
       __pyx_t_4 = 0;
 
-      /* "src/lxml/apihelpers.pxi":1303
+      /* "src/lxml/apihelpers.pxi":1298
  *     else:
  *         for element in elements:
  *             assert element is not None, u"Node must not be None"             # <<<<<<<<<<<<<<
@@ -32769,30 +32696,30 @@ 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_ERR(5, 1303, __pyx_L1_error)
+          __PYX_ERR(5, 1298, __pyx_L1_error)
         }
       }
       #endif
 
-      /* "src/lxml/apihelpers.pxi":1304
+      /* "src/lxml/apihelpers.pxi":1299
  *         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 == ((int)-1))) __PYX_ERR(5, 1304, __pyx_L1_error)
+      __pyx_t_9 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_element); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(5, 1299, __pyx_L1_error)
 
-      /* "src/lxml/apihelpers.pxi":1305
+      /* "src/lxml/apihelpers.pxi":1300
  *             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 == ((int)-1))) __PYX_ERR(5, 1305, __pyx_L1_error)
+      __pyx_t_9 = __pyx_f_4lxml_5etree__prependChild(__pyx_v_parent, __pyx_v_element); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(5, 1300, __pyx_L1_error)
 
-      /* "src/lxml/apihelpers.pxi":1302
+      /* "src/lxml/apihelpers.pxi":1297
  *             _appendChild(parent, element)
  *     else:
  *         for element in elements:             # <<<<<<<<<<<<<<
@@ -32804,7 +32731,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
   }
   __pyx_L43:;
 
-  /* "src/lxml/apihelpers.pxi":1307
+  /* "src/lxml/apihelpers.pxi":1302
  *             _prependChild(parent, element)
  * 
  *     return 0             # <<<<<<<<<<<<<<
@@ -32814,7 +32741,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
   __pyx_r = 0;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":1170
+  /* "src/lxml/apihelpers.pxi":1165
  *     return 0
  * 
  * cdef int _replaceSlice(_Element parent, xmlNode* c_node,             # <<<<<<<<<<<<<<
@@ -32835,7 +32762,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":1310
+/* "src/lxml/apihelpers.pxi":1305
  * 
  * 
  * cdef int _linkChild(xmlNode* c_parent, xmlNode* c_node) except -1:             # <<<<<<<<<<<<<<
@@ -32850,7 +32777,7 @@ static int __pyx_f_4lxml_5etree__linkChild(xmlNode *__pyx_v_c_parent, xmlNode *_
   xmlNode *__pyx_t_2;
   __Pyx_RefNannySetupContext("_linkChild", 0);
 
-  /* "src/lxml/apihelpers.pxi":1313
+  /* "src/lxml/apihelpers.pxi":1308
  *     """Adaptation of 'xmlAddChild()' that deep-fix the document links iteratively.
  *     """
  *     assert _isElement(c_node)             # <<<<<<<<<<<<<<
@@ -32861,12 +32788,12 @@ static int __pyx_f_4lxml_5etree__linkChild(xmlNode *__pyx_v_c_parent, xmlNode *_
   if (unlikely(!Py_OptimizeFlag)) {
     if (unlikely(!(_isElement(__pyx_v_c_node) != 0))) {
       PyErr_SetNone(PyExc_AssertionError);
-      __PYX_ERR(5, 1313, __pyx_L1_error)
+      __PYX_ERR(5, 1308, __pyx_L1_error)
     }
   }
   #endif
 
-  /* "src/lxml/apihelpers.pxi":1314
+  /* "src/lxml/apihelpers.pxi":1309
  *     """
  *     assert _isElement(c_node)
  *     c_node.parent = c_parent             # <<<<<<<<<<<<<<
@@ -32875,7 +32802,7 @@ static int __pyx_f_4lxml_5etree__linkChild(xmlNode *__pyx_v_c_parent, xmlNode *_
  */
   __pyx_v_c_node->parent = __pyx_v_c_parent;
 
-  /* "src/lxml/apihelpers.pxi":1315
+  /* "src/lxml/apihelpers.pxi":1310
  *     assert _isElement(c_node)
  *     c_node.parent = c_parent
  *     if c_parent.children is NULL:             # <<<<<<<<<<<<<<
@@ -32885,7 +32812,7 @@ static int __pyx_f_4lxml_5etree__linkChild(xmlNode *__pyx_v_c_parent, xmlNode *_
   __pyx_t_1 = ((__pyx_v_c_parent->children == NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "src/lxml/apihelpers.pxi":1316
+    /* "src/lxml/apihelpers.pxi":1311
  *     c_node.parent = c_parent
  *     if c_parent.children is NULL:
  *         c_parent.children = c_parent.last = c_node             # <<<<<<<<<<<<<<
@@ -32895,7 +32822,7 @@ static int __pyx_f_4lxml_5etree__linkChild(xmlNode *__pyx_v_c_parent, xmlNode *_
     __pyx_v_c_parent->children = __pyx_v_c_node;
     __pyx_v_c_parent->last = __pyx_v_c_node;
 
-    /* "src/lxml/apihelpers.pxi":1315
+    /* "src/lxml/apihelpers.pxi":1310
  *     assert _isElement(c_node)
  *     c_node.parent = c_parent
  *     if c_parent.children is NULL:             # <<<<<<<<<<<<<<
@@ -32905,7 +32832,7 @@ static int __pyx_f_4lxml_5etree__linkChild(xmlNode *__pyx_v_c_parent, xmlNode *_
     goto __pyx_L3;
   }
 
-  /* "src/lxml/apihelpers.pxi":1318
+  /* "src/lxml/apihelpers.pxi":1313
  *         c_parent.children = c_parent.last = c_node
  *     else:
  *         c_node.prev = c_parent.last             # <<<<<<<<<<<<<<
@@ -32916,7 +32843,7 @@ static int __pyx_f_4lxml_5etree__linkChild(xmlNode *__pyx_v_c_parent, xmlNode *_
     __pyx_t_2 = __pyx_v_c_parent->last;
     __pyx_v_c_node->prev = __pyx_t_2;
 
-    /* "src/lxml/apihelpers.pxi":1319
+    /* "src/lxml/apihelpers.pxi":1314
  *     else:
  *         c_node.prev = c_parent.last
  *         c_parent.last.next = c_node             # <<<<<<<<<<<<<<
@@ -32925,7 +32852,7 @@ static int __pyx_f_4lxml_5etree__linkChild(xmlNode *__pyx_v_c_parent, xmlNode *_
  */
     __pyx_v_c_parent->last->next = __pyx_v_c_node;
 
-    /* "src/lxml/apihelpers.pxi":1320
+    /* "src/lxml/apihelpers.pxi":1315
  *         c_node.prev = c_parent.last
  *         c_parent.last.next = c_node
  *         c_parent.last = c_node             # <<<<<<<<<<<<<<
@@ -32936,7 +32863,7 @@ static int __pyx_f_4lxml_5etree__linkChild(xmlNode *__pyx_v_c_parent, xmlNode *_
   }
   __pyx_L3:;
 
-  /* "src/lxml/apihelpers.pxi":1322
+  /* "src/lxml/apihelpers.pxi":1317
  *         c_parent.last = c_node
  * 
  *     _setTreeDoc(c_node, c_parent.doc)             # <<<<<<<<<<<<<<
@@ -32945,7 +32872,7 @@ static int __pyx_f_4lxml_5etree__linkChild(xmlNode *__pyx_v_c_parent, xmlNode *_
  */
   __pyx_f_4lxml_5etree__setTreeDoc(__pyx_v_c_node, __pyx_v_c_parent->doc);
 
-  /* "src/lxml/apihelpers.pxi":1323
+  /* "src/lxml/apihelpers.pxi":1318
  * 
  *     _setTreeDoc(c_node, c_parent.doc)
  *     return 0             # <<<<<<<<<<<<<<
@@ -32955,7 +32882,7 @@ static int __pyx_f_4lxml_5etree__linkChild(xmlNode *__pyx_v_c_parent, xmlNode *_
   __pyx_r = 0;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":1310
+  /* "src/lxml/apihelpers.pxi":1305
  * 
  * 
  * cdef int _linkChild(xmlNode* c_parent, xmlNode* c_node) except -1:             # <<<<<<<<<<<<<<
@@ -32972,7 +32899,7 @@ static int __pyx_f_4lxml_5etree__linkChild(xmlNode *__pyx_v_c_parent, xmlNode *_
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":1326
+/* "src/lxml/apihelpers.pxi":1321
  * 
  * 
  * cdef int _appendChild(_Element parent, _Element child) except -1:             # <<<<<<<<<<<<<<
@@ -32993,7 +32920,7 @@ static int __pyx_f_4lxml_5etree__appendChild(struct LxmlElement *__pyx_v_parent,
   int __pyx_t_5;
   __Pyx_RefNannySetupContext("_appendChild", 0);
 
-  /* "src/lxml/apihelpers.pxi":1329
+  /* "src/lxml/apihelpers.pxi":1324
  *     u"""Append a new child to a parent element.
  *     """
  *     c_node = child._c_node             # <<<<<<<<<<<<<<
@@ -33003,7 +32930,7 @@ 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;
 
-  /* "src/lxml/apihelpers.pxi":1330
+  /* "src/lxml/apihelpers.pxi":1325
  *     """
  *     c_node = child._c_node
  *     c_source_doc = c_node.doc             # <<<<<<<<<<<<<<
@@ -33013,7 +32940,7 @@ static int __pyx_f_4lxml_5etree__appendChild(struct LxmlElement *__pyx_v_parent,
   __pyx_t_2 = __pyx_v_c_node->doc;
   __pyx_v_c_source_doc = __pyx_t_2;
 
-  /* "src/lxml/apihelpers.pxi":1332
+  /* "src/lxml/apihelpers.pxi":1327
  *     c_source_doc = c_node.doc
  *     # prevent cycles
  *     if _isAncestorOrSame(c_node, parent._c_node):             # <<<<<<<<<<<<<<
@@ -33023,20 +32950,20 @@ static int __pyx_f_4lxml_5etree__appendChild(struct LxmlElement *__pyx_v_parent,
   __pyx_t_3 = (__pyx_f_4lxml_5etree__isAncestorOrSame(__pyx_v_c_node, __pyx_v_parent->_c_node) != 0);
   if (unlikely(__pyx_t_3)) {
 
-    /* "src/lxml/apihelpers.pxi":1333
+    /* "src/lxml/apihelpers.pxi":1328
  *     # 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_4 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__13, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1333, __pyx_L1_error)
+    __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__13, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1328, __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_ERR(5, 1333, __pyx_L1_error)
+    __PYX_ERR(5, 1328, __pyx_L1_error)
 
-    /* "src/lxml/apihelpers.pxi":1332
+    /* "src/lxml/apihelpers.pxi":1327
  *     c_source_doc = c_node.doc
  *     # prevent cycles
  *     if _isAncestorOrSame(c_node, parent._c_node):             # <<<<<<<<<<<<<<
@@ -33045,7 +32972,7 @@ static int __pyx_f_4lxml_5etree__appendChild(struct LxmlElement *__pyx_v_parent,
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":1335
+  /* "src/lxml/apihelpers.pxi":1330
  *         raise ValueError("cannot append parent to itself")
  *     # store possible text node
  *     c_next = c_node.next             # <<<<<<<<<<<<<<
@@ -33055,7 +32982,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;
 
-  /* "src/lxml/apihelpers.pxi":1337
+  /* "src/lxml/apihelpers.pxi":1332
  *     c_next = c_node.next
  *     # move node itself
  *     tree.xmlUnlinkNode(c_node)             # <<<<<<<<<<<<<<
@@ -33064,16 +32991,16 @@ static int __pyx_f_4lxml_5etree__appendChild(struct LxmlElement *__pyx_v_parent,
  */
   xmlUnlinkNode(__pyx_v_c_node);
 
-  /* "src/lxml/apihelpers.pxi":1339
+  /* "src/lxml/apihelpers.pxi":1334
  *     tree.xmlUnlinkNode(c_node)
  *     # do not call xmlAddChild() here since it would deep-traverse the tree
  *     _linkChild(parent._c_node, c_node)             # <<<<<<<<<<<<<<
  *     _moveTail(c_next, c_node)
  *     # uh oh, elements may be pointing to different doc when
  */
-  __pyx_t_5 = __pyx_f_4lxml_5etree__linkChild(__pyx_v_parent->_c_node, __pyx_v_c_node); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(5, 1339, __pyx_L1_error)
+  __pyx_t_5 = __pyx_f_4lxml_5etree__linkChild(__pyx_v_parent->_c_node, __pyx_v_c_node); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(5, 1334, __pyx_L1_error)
 
-  /* "src/lxml/apihelpers.pxi":1340
+  /* "src/lxml/apihelpers.pxi":1335
  *     # do not call xmlAddChild() here since it would deep-traverse the tree
  *     _linkChild(parent._c_node, c_node)
  *     _moveTail(c_next, c_node)             # <<<<<<<<<<<<<<
@@ -33082,7 +33009,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);
 
-  /* "src/lxml/apihelpers.pxi":1343
+  /* "src/lxml/apihelpers.pxi":1338
  *     # 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)             # <<<<<<<<<<<<<<
@@ -33091,10 +33018,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 == ((int)-1))) __PYX_ERR(5, 1343, __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 == ((int)-1))) __PYX_ERR(5, 1338, __pyx_L1_error)
   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
-  /* "src/lxml/apihelpers.pxi":1344
+  /* "src/lxml/apihelpers.pxi":1339
  *     # parent element has moved; change them too..
  *     moveNodeToDocument(parent._doc, c_source_doc, c_node)
  *     return 0             # <<<<<<<<<<<<<<
@@ -33104,7 +33031,7 @@ static int __pyx_f_4lxml_5etree__appendChild(struct LxmlElement *__pyx_v_parent,
   __pyx_r = 0;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":1326
+  /* "src/lxml/apihelpers.pxi":1321
  * 
  * 
  * cdef int _appendChild(_Element parent, _Element child) except -1:             # <<<<<<<<<<<<<<
@@ -33122,7 +33049,7 @@ static int __pyx_f_4lxml_5etree__appendChild(struct LxmlElement *__pyx_v_parent,
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":1346
+/* "src/lxml/apihelpers.pxi":1341
  *     return 0
  * 
  * cdef int _prependChild(_Element parent, _Element child) except -1:             # <<<<<<<<<<<<<<
@@ -33144,7 +33071,7 @@ static int __pyx_f_4lxml_5etree__prependChild(struct LxmlElement *__pyx_v_parent
   int __pyx_t_5;
   __Pyx_RefNannySetupContext("_prependChild", 0);
 
-  /* "src/lxml/apihelpers.pxi":1349
+  /* "src/lxml/apihelpers.pxi":1344
  *     u"""Prepend a new child to a parent element.
  *     """
  *     c_node = child._c_node             # <<<<<<<<<<<<<<
@@ -33154,7 +33081,7 @@ 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;
 
-  /* "src/lxml/apihelpers.pxi":1350
+  /* "src/lxml/apihelpers.pxi":1345
  *     """
  *     c_node = child._c_node
  *     c_source_doc = c_node.doc             # <<<<<<<<<<<<<<
@@ -33164,7 +33091,7 @@ static int __pyx_f_4lxml_5etree__prependChild(struct LxmlElement *__pyx_v_parent
   __pyx_t_2 = __pyx_v_c_node->doc;
   __pyx_v_c_source_doc = __pyx_t_2;
 
-  /* "src/lxml/apihelpers.pxi":1352
+  /* "src/lxml/apihelpers.pxi":1347
  *     c_source_doc = c_node.doc
  *     # prevent cycles
  *     if _isAncestorOrSame(c_node, parent._c_node):             # <<<<<<<<<<<<<<
@@ -33174,20 +33101,20 @@ static int __pyx_f_4lxml_5etree__prependChild(struct LxmlElement *__pyx_v_parent
   __pyx_t_3 = (__pyx_f_4lxml_5etree__isAncestorOrSame(__pyx_v_c_node, __pyx_v_parent->_c_node) != 0);
   if (unlikely(__pyx_t_3)) {
 
-    /* "src/lxml/apihelpers.pxi":1353
+    /* "src/lxml/apihelpers.pxi":1348
  *     # 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_4 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__13, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1353, __pyx_L1_error)
+    __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__13, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1348, __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_ERR(5, 1353, __pyx_L1_error)
+    __PYX_ERR(5, 1348, __pyx_L1_error)
 
-    /* "src/lxml/apihelpers.pxi":1352
+    /* "src/lxml/apihelpers.pxi":1347
  *     c_source_doc = c_node.doc
  *     # prevent cycles
  *     if _isAncestorOrSame(c_node, parent._c_node):             # <<<<<<<<<<<<<<
@@ -33196,7 +33123,7 @@ static int __pyx_f_4lxml_5etree__prependChild(struct LxmlElement *__pyx_v_parent
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":1355
+  /* "src/lxml/apihelpers.pxi":1350
  *         raise ValueError("cannot append parent to itself")
  *     # store possible text node
  *     c_next = c_node.next             # <<<<<<<<<<<<<<
@@ -33206,7 +33133,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;
 
-  /* "src/lxml/apihelpers.pxi":1357
+  /* "src/lxml/apihelpers.pxi":1352
  *     c_next = c_node.next
  *     # move node itself
  *     c_child = _findChildForwards(parent._c_node, 0)             # <<<<<<<<<<<<<<
@@ -33215,7 +33142,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);
 
-  /* "src/lxml/apihelpers.pxi":1358
+  /* "src/lxml/apihelpers.pxi":1353
  *     # move node itself
  *     c_child = _findChildForwards(parent._c_node, 0)
  *     if c_child is NULL:             # <<<<<<<<<<<<<<
@@ -33225,7 +33152,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) {
 
-    /* "src/lxml/apihelpers.pxi":1359
+    /* "src/lxml/apihelpers.pxi":1354
  *     c_child = _findChildForwards(parent._c_node, 0)
  *     if c_child is NULL:
  *         tree.xmlUnlinkNode(c_node)             # <<<<<<<<<<<<<<
@@ -33234,16 +33161,16 @@ static int __pyx_f_4lxml_5etree__prependChild(struct LxmlElement *__pyx_v_parent
  */
     xmlUnlinkNode(__pyx_v_c_node);
 
-    /* "src/lxml/apihelpers.pxi":1361
+    /* "src/lxml/apihelpers.pxi":1356
  *         tree.xmlUnlinkNode(c_node)
  *         # do not call xmlAddChild() here since it would deep-traverse the tree
  *         _linkChild(parent._c_node, c_node)             # <<<<<<<<<<<<<<
  *     else:
  *         tree.xmlAddPrevSibling(c_child, c_node)
  */
-    __pyx_t_5 = __pyx_f_4lxml_5etree__linkChild(__pyx_v_parent->_c_node, __pyx_v_c_node); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(5, 1361, __pyx_L1_error)
+    __pyx_t_5 = __pyx_f_4lxml_5etree__linkChild(__pyx_v_parent->_c_node, __pyx_v_c_node); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(5, 1356, __pyx_L1_error)
 
-    /* "src/lxml/apihelpers.pxi":1358
+    /* "src/lxml/apihelpers.pxi":1353
  *     # move node itself
  *     c_child = _findChildForwards(parent._c_node, 0)
  *     if c_child is NULL:             # <<<<<<<<<<<<<<
@@ -33253,7 +33180,7 @@ static int __pyx_f_4lxml_5etree__prependChild(struct LxmlElement *__pyx_v_parent
     goto __pyx_L4;
   }
 
-  /* "src/lxml/apihelpers.pxi":1363
+  /* "src/lxml/apihelpers.pxi":1358
  *         _linkChild(parent._c_node, c_node)
  *     else:
  *         tree.xmlAddPrevSibling(c_child, c_node)             # <<<<<<<<<<<<<<
@@ -33265,7 +33192,7 @@ static int __pyx_f_4lxml_5etree__prependChild(struct LxmlElement *__pyx_v_parent
   }
   __pyx_L4:;
 
-  /* "src/lxml/apihelpers.pxi":1364
+  /* "src/lxml/apihelpers.pxi":1359
  *     else:
  *         tree.xmlAddPrevSibling(c_child, c_node)
  *     _moveTail(c_next, c_node)             # <<<<<<<<<<<<<<
@@ -33274,7 +33201,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);
 
-  /* "src/lxml/apihelpers.pxi":1367
+  /* "src/lxml/apihelpers.pxi":1362
  *     # 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)             # <<<<<<<<<<<<<<
@@ -33283,10 +33210,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 == ((int)-1))) __PYX_ERR(5, 1367, __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 == ((int)-1))) __PYX_ERR(5, 1362, __pyx_L1_error)
   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
-  /* "src/lxml/apihelpers.pxi":1368
+  /* "src/lxml/apihelpers.pxi":1363
  *     # parent element has moved; change them too..
  *     moveNodeToDocument(parent._doc, c_source_doc, c_node)
  *     return 0             # <<<<<<<<<<<<<<
@@ -33296,7 +33223,7 @@ static int __pyx_f_4lxml_5etree__prependChild(struct LxmlElement *__pyx_v_parent
   __pyx_r = 0;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":1346
+  /* "src/lxml/apihelpers.pxi":1341
  *     return 0
  * 
  * cdef int _prependChild(_Element parent, _Element child) except -1:             # <<<<<<<<<<<<<<
@@ -33314,7 +33241,7 @@ static int __pyx_f_4lxml_5etree__prependChild(struct LxmlElement *__pyx_v_parent
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":1370
+/* "src/lxml/apihelpers.pxi":1365
  *     return 0
  * 
  * cdef int _appendSibling(_Element element, _Element sibling) except -1:             # <<<<<<<<<<<<<<
@@ -33328,18 +33255,18 @@ static int __pyx_f_4lxml_5etree__appendSibling(struct LxmlElement *__pyx_v_eleme
   int __pyx_t_1;
   __Pyx_RefNannySetupContext("_appendSibling", 0);
 
-  /* "src/lxml/apihelpers.pxi":1373
+  /* "src/lxml/apihelpers.pxi":1368
  *     u"""Add a new sibling behind an element.
  *     """
  *     return _addSibling(element, sibling, as_next=True)             # <<<<<<<<<<<<<<
  * 
  * cdef int _prependSibling(_Element element, _Element sibling) except -1:
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__addSibling(__pyx_v_element, __pyx_v_sibling, 1); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(5, 1373, __pyx_L1_error)
+  __pyx_t_1 = __pyx_f_4lxml_5etree__addSibling(__pyx_v_element, __pyx_v_sibling, 1); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(5, 1368, __pyx_L1_error)
   __pyx_r = __pyx_t_1;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":1370
+  /* "src/lxml/apihelpers.pxi":1365
  *     return 0
  * 
  * cdef int _appendSibling(_Element element, _Element sibling) except -1:             # <<<<<<<<<<<<<<
@@ -33356,7 +33283,7 @@ static int __pyx_f_4lxml_5etree__appendSibling(struct LxmlElement *__pyx_v_eleme
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":1375
+/* "src/lxml/apihelpers.pxi":1370
  *     return _addSibling(element, sibling, as_next=True)
  * 
  * cdef int _prependSibling(_Element element, _Element sibling) except -1:             # <<<<<<<<<<<<<<
@@ -33370,18 +33297,18 @@ static int __pyx_f_4lxml_5etree__prependSibling(struct LxmlElement *__pyx_v_elem
   int __pyx_t_1;
   __Pyx_RefNannySetupContext("_prependSibling", 0);
 
-  /* "src/lxml/apihelpers.pxi":1378
+  /* "src/lxml/apihelpers.pxi":1373
  *     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 == ((int)-1))) __PYX_ERR(5, 1378, __pyx_L1_error)
+  __pyx_t_1 = __pyx_f_4lxml_5etree__addSibling(__pyx_v_element, __pyx_v_sibling, 0); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(5, 1373, __pyx_L1_error)
   __pyx_r = __pyx_t_1;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":1375
+  /* "src/lxml/apihelpers.pxi":1370
  *     return _addSibling(element, sibling, as_next=True)
  * 
  * cdef int _prependSibling(_Element element, _Element sibling) except -1:             # <<<<<<<<<<<<<<
@@ -33398,7 +33325,7 @@ static int __pyx_f_4lxml_5etree__prependSibling(struct LxmlElement *__pyx_v_elem
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":1380
+/* "src/lxml/apihelpers.pxi":1375
  *     return _addSibling(element, sibling, as_next=False)
  * 
  * cdef int _addSibling(_Element element, _Element sibling, bint as_next) except -1:             # <<<<<<<<<<<<<<
@@ -33419,7 +33346,7 @@ static int __pyx_f_4lxml_5etree__addSibling(struct LxmlElement *__pyx_v_element,
   int __pyx_t_5;
   __Pyx_RefNannySetupContext("_addSibling", 0);
 
-  /* "src/lxml/apihelpers.pxi":1381
+  /* "src/lxml/apihelpers.pxi":1376
  * 
  * cdef int _addSibling(_Element element, _Element sibling, bint as_next) except -1:
  *     c_node = sibling._c_node             # <<<<<<<<<<<<<<
@@ -33429,7 +33356,7 @@ static int __pyx_f_4lxml_5etree__addSibling(struct LxmlElement *__pyx_v_element,
   __pyx_t_1 = __pyx_v_sibling->_c_node;
   __pyx_v_c_node = __pyx_t_1;
 
-  /* "src/lxml/apihelpers.pxi":1382
+  /* "src/lxml/apihelpers.pxi":1377
  * cdef int _addSibling(_Element element, _Element sibling, bint as_next) except -1:
  *     c_node = sibling._c_node
  *     c_source_doc = c_node.doc             # <<<<<<<<<<<<<<
@@ -33439,7 +33366,7 @@ static int __pyx_f_4lxml_5etree__addSibling(struct LxmlElement *__pyx_v_element,
   __pyx_t_2 = __pyx_v_c_node->doc;
   __pyx_v_c_source_doc = __pyx_t_2;
 
-  /* "src/lxml/apihelpers.pxi":1384
+  /* "src/lxml/apihelpers.pxi":1379
  *     c_source_doc = c_node.doc
  *     # prevent cycles
  *     if _isAncestorOrSame(c_node, element._c_node):             # <<<<<<<<<<<<<<
@@ -33449,7 +33376,7 @@ static int __pyx_f_4lxml_5etree__addSibling(struct LxmlElement *__pyx_v_element,
   __pyx_t_3 = (__pyx_f_4lxml_5etree__isAncestorOrSame(__pyx_v_c_node, __pyx_v_element->_c_node) != 0);
   if (__pyx_t_3) {
 
-    /* "src/lxml/apihelpers.pxi":1385
+    /* "src/lxml/apihelpers.pxi":1380
  *     # prevent cycles
  *     if _isAncestorOrSame(c_node, element._c_node):
  *         if element._c_node is c_node:             # <<<<<<<<<<<<<<
@@ -33459,7 +33386,7 @@ static int __pyx_f_4lxml_5etree__addSibling(struct LxmlElement *__pyx_v_element,
     __pyx_t_3 = ((__pyx_v_element->_c_node == __pyx_v_c_node) != 0);
     if (__pyx_t_3) {
 
-      /* "src/lxml/apihelpers.pxi":1386
+      /* "src/lxml/apihelpers.pxi":1381
  *     if _isAncestorOrSame(c_node, element._c_node):
  *         if element._c_node is c_node:
  *             return 0  # nothing to do             # <<<<<<<<<<<<<<
@@ -33469,7 +33396,7 @@ static int __pyx_f_4lxml_5etree__addSibling(struct LxmlElement *__pyx_v_element,
       __pyx_r = 0;
       goto __pyx_L0;
 
-      /* "src/lxml/apihelpers.pxi":1385
+      /* "src/lxml/apihelpers.pxi":1380
  *     # prevent cycles
  *     if _isAncestorOrSame(c_node, element._c_node):
  *         if element._c_node is c_node:             # <<<<<<<<<<<<<<
@@ -33478,20 +33405,20 @@ static int __pyx_f_4lxml_5etree__addSibling(struct LxmlElement *__pyx_v_element,
  */
     }
 
-    /* "src/lxml/apihelpers.pxi":1387
+    /* "src/lxml/apihelpers.pxi":1382
  *         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_4 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__14, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1387, __pyx_L1_error)
+    __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__14, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1382, __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_ERR(5, 1387, __pyx_L1_error)
+    __PYX_ERR(5, 1382, __pyx_L1_error)
 
-    /* "src/lxml/apihelpers.pxi":1384
+    /* "src/lxml/apihelpers.pxi":1379
  *     c_source_doc = c_node.doc
  *     # prevent cycles
  *     if _isAncestorOrSame(c_node, element._c_node):             # <<<<<<<<<<<<<<
@@ -33500,7 +33427,7 @@ static int __pyx_f_4lxml_5etree__addSibling(struct LxmlElement *__pyx_v_element,
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":1389
+  /* "src/lxml/apihelpers.pxi":1384
  *         raise ValueError("cannot add ancestor as sibling, please break cycle first")
  *     # store possible text node
  *     c_next = c_node.next             # <<<<<<<<<<<<<<
@@ -33510,7 +33437,7 @@ static int __pyx_f_4lxml_5etree__addSibling(struct LxmlElement *__pyx_v_element,
   __pyx_t_1 = __pyx_v_c_node->next;
   __pyx_v_c_next = __pyx_t_1;
 
-  /* "src/lxml/apihelpers.pxi":1391
+  /* "src/lxml/apihelpers.pxi":1386
  *     c_next = c_node.next
  *     # move node itself
  *     if as_next:             # <<<<<<<<<<<<<<
@@ -33520,7 +33447,7 @@ static int __pyx_f_4lxml_5etree__addSibling(struct LxmlElement *__pyx_v_element,
   __pyx_t_3 = (__pyx_v_as_next != 0);
   if (__pyx_t_3) {
 
-    /* "src/lxml/apihelpers.pxi":1392
+    /* "src/lxml/apihelpers.pxi":1387
  *     # move node itself
  *     if as_next:
  *         tree.xmlAddNextSibling(element._c_node, c_node)             # <<<<<<<<<<<<<<
@@ -33529,7 +33456,7 @@ static int __pyx_f_4lxml_5etree__addSibling(struct LxmlElement *__pyx_v_element,
  */
     (void)(xmlAddNextSibling(__pyx_v_element->_c_node, __pyx_v_c_node));
 
-    /* "src/lxml/apihelpers.pxi":1391
+    /* "src/lxml/apihelpers.pxi":1386
  *     c_next = c_node.next
  *     # move node itself
  *     if as_next:             # <<<<<<<<<<<<<<
@@ -33539,7 +33466,7 @@ static int __pyx_f_4lxml_5etree__addSibling(struct LxmlElement *__pyx_v_element,
     goto __pyx_L5;
   }
 
-  /* "src/lxml/apihelpers.pxi":1394
+  /* "src/lxml/apihelpers.pxi":1389
  *         tree.xmlAddNextSibling(element._c_node, c_node)
  *     else:
  *         tree.xmlAddPrevSibling(element._c_node, c_node)             # <<<<<<<<<<<<<<
@@ -33551,7 +33478,7 @@ static int __pyx_f_4lxml_5etree__addSibling(struct LxmlElement *__pyx_v_element,
   }
   __pyx_L5:;
 
-  /* "src/lxml/apihelpers.pxi":1395
+  /* "src/lxml/apihelpers.pxi":1390
  *     else:
  *         tree.xmlAddPrevSibling(element._c_node, c_node)
  *     _moveTail(c_next, c_node)             # <<<<<<<<<<<<<<
@@ -33560,7 +33487,7 @@ static int __pyx_f_4lxml_5etree__addSibling(struct LxmlElement *__pyx_v_element,
  */
   __pyx_f_4lxml_5etree__moveTail(__pyx_v_c_next, __pyx_v_c_node);
 
-  /* "src/lxml/apihelpers.pxi":1398
+  /* "src/lxml/apihelpers.pxi":1393
  *     # 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)             # <<<<<<<<<<<<<<
@@ -33569,10 +33496,10 @@ static int __pyx_f_4lxml_5etree__addSibling(struct LxmlElement *__pyx_v_element,
  */
   __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 == ((int)-1))) __PYX_ERR(5, 1398, __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 == ((int)-1))) __PYX_ERR(5, 1393, __pyx_L1_error)
   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
-  /* "src/lxml/apihelpers.pxi":1399
+  /* "src/lxml/apihelpers.pxi":1394
  *     # parent element has moved; change them too..
  *     moveNodeToDocument(element._doc, c_source_doc, c_node)
  *     return 0             # <<<<<<<<<<<<<<
@@ -33582,7 +33509,7 @@ static int __pyx_f_4lxml_5etree__addSibling(struct LxmlElement *__pyx_v_element,
   __pyx_r = 0;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":1380
+  /* "src/lxml/apihelpers.pxi":1375
  *     return _addSibling(element, sibling, as_next=False)
  * 
  * cdef int _addSibling(_Element element, _Element sibling, bint as_next) except -1:             # <<<<<<<<<<<<<<
@@ -33600,7 +33527,7 @@ static int __pyx_f_4lxml_5etree__addSibling(struct LxmlElement *__pyx_v_element,
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":1401
+/* "src/lxml/apihelpers.pxi":1396
  *     return 0
  * 
  * cdef inline bint isutf8(const_xmlChar* s):             # <<<<<<<<<<<<<<
@@ -33615,7 +33542,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_isutf8(const xmlChar *__pyx_v_s) {
   int __pyx_t_1;
   __Pyx_RefNannySetupContext("isutf8", 0);
 
-  /* "src/lxml/apihelpers.pxi":1402
+  /* "src/lxml/apihelpers.pxi":1397
  * 
  * cdef inline bint isutf8(const_xmlChar* s):
  *     cdef xmlChar c = s[0]             # <<<<<<<<<<<<<<
@@ -33624,7 +33551,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_isutf8(const xmlChar *__pyx_v_s) {
  */
   __pyx_v_c = (__pyx_v_s[0]);
 
-  /* "src/lxml/apihelpers.pxi":1403
+  /* "src/lxml/apihelpers.pxi":1398
  * cdef inline bint isutf8(const_xmlChar* s):
  *     cdef xmlChar c = s[0]
  *     while c != c'\0':             # <<<<<<<<<<<<<<
@@ -33635,7 +33562,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;
 
-    /* "src/lxml/apihelpers.pxi":1404
+    /* "src/lxml/apihelpers.pxi":1399
  *     cdef xmlChar c = s[0]
  *     while c != c'\0':
  *         if c & 0x80:             # <<<<<<<<<<<<<<
@@ -33645,7 +33572,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) {
 
-      /* "src/lxml/apihelpers.pxi":1405
+      /* "src/lxml/apihelpers.pxi":1400
  *     while c != c'\0':
  *         if c & 0x80:
  *             return True             # <<<<<<<<<<<<<<
@@ -33655,7 +33582,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_isutf8(const xmlChar *__pyx_v_s) {
       __pyx_r = 1;
       goto __pyx_L0;
 
-      /* "src/lxml/apihelpers.pxi":1404
+      /* "src/lxml/apihelpers.pxi":1399
  *     cdef xmlChar c = s[0]
  *     while c != c'\0':
  *         if c & 0x80:             # <<<<<<<<<<<<<<
@@ -33664,7 +33591,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_isutf8(const xmlChar *__pyx_v_s) {
  */
     }
 
-    /* "src/lxml/apihelpers.pxi":1406
+    /* "src/lxml/apihelpers.pxi":1401
  *         if c & 0x80:
  *             return True
  *         s += 1             # <<<<<<<<<<<<<<
@@ -33673,7 +33600,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_isutf8(const xmlChar *__pyx_v_s) {
  */
     __pyx_v_s = (__pyx_v_s + 1);
 
-    /* "src/lxml/apihelpers.pxi":1407
+    /* "src/lxml/apihelpers.pxi":1402
  *             return True
  *         s += 1
  *         c = s[0]             # <<<<<<<<<<<<<<
@@ -33683,7 +33610,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_isutf8(const xmlChar *__pyx_v_s) {
     __pyx_v_c = (__pyx_v_s[0]);
   }
 
-  /* "src/lxml/apihelpers.pxi":1408
+  /* "src/lxml/apihelpers.pxi":1403
  *         s += 1
  *         c = s[0]
  *     return False             # <<<<<<<<<<<<<<
@@ -33693,7 +33620,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_isutf8(const xmlChar *__pyx_v_s) {
   __pyx_r = 0;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":1401
+  /* "src/lxml/apihelpers.pxi":1396
  *     return 0
  * 
  * cdef inline bint isutf8(const_xmlChar* s):             # <<<<<<<<<<<<<<
@@ -33707,7 +33634,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_isutf8(const xmlChar *__pyx_v_s) {
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":1410
+/* "src/lxml/apihelpers.pxi":1405
  *     return False
  * 
  * cdef bint isutf8l(const_xmlChar* s, size_t length):             # <<<<<<<<<<<<<<
@@ -33729,7 +33656,7 @@ static int __pyx_f_4lxml_5etree_isutf8l(const xmlChar *__pyx_v_s, size_t __pyx_v
   int __pyx_t_5;
   __Pyx_RefNannySetupContext("isutf8l", 0);
 
-  /* "src/lxml/apihelpers.pxi":1416
+  /* "src/lxml/apihelpers.pxi":1411
  *     cdef unsigned int i
  *     cdef unsigned long non_ascii_mask
  *     cdef const unsigned long *lptr = <const unsigned long*> s             # <<<<<<<<<<<<<<
@@ -33738,7 +33665,7 @@ static int __pyx_f_4lxml_5etree_isutf8l(const xmlChar *__pyx_v_s, size_t __pyx_v
  */
   __pyx_v_lptr = ((unsigned long const *)__pyx_v_s);
 
-  /* "src/lxml/apihelpers.pxi":1418
+  /* "src/lxml/apihelpers.pxi":1413
  *     cdef const unsigned long *lptr = <const unsigned long*> s
  * 
  *     cdef const unsigned long *end = lptr + length // sizeof(unsigned long)             # <<<<<<<<<<<<<<
@@ -33748,11 +33675,11 @@ static int __pyx_f_4lxml_5etree_isutf8l(const xmlChar *__pyx_v_s, size_t __pyx_v
   __pyx_t_1 = (sizeof(unsigned long));
   if (unlikely(__pyx_t_1 == 0)) {
     PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero");
-    __PYX_ERR(5, 1418, __pyx_L1_error)
+    __PYX_ERR(5, 1413, __pyx_L1_error)
   }
   __pyx_v_end = (__pyx_v_lptr + (__pyx_v_length / __pyx_t_1));
 
-  /* "src/lxml/apihelpers.pxi":1419
+  /* "src/lxml/apihelpers.pxi":1414
  * 
  *     cdef const unsigned long *end = lptr + length // sizeof(unsigned long)
  *     if length >= sizeof(non_ascii_mask):             # <<<<<<<<<<<<<<
@@ -33762,7 +33689,7 @@ static int __pyx_f_4lxml_5etree_isutf8l(const xmlChar *__pyx_v_s, size_t __pyx_v
   __pyx_t_2 = ((__pyx_v_length >= (sizeof(__pyx_v_non_ascii_mask))) != 0);
   if (__pyx_t_2) {
 
-    /* "src/lxml/apihelpers.pxi":1421
+    /* "src/lxml/apihelpers.pxi":1416
  *     if length >= sizeof(non_ascii_mask):
  *         # Build constant 0x80808080... mask (and let the C compiler fold it).
  *         non_ascii_mask = 0             # <<<<<<<<<<<<<<
@@ -33771,7 +33698,7 @@ static int __pyx_f_4lxml_5etree_isutf8l(const xmlChar *__pyx_v_s, size_t __pyx_v
  */
     __pyx_v_non_ascii_mask = 0;
 
-    /* "src/lxml/apihelpers.pxi":1422
+    /* "src/lxml/apihelpers.pxi":1417
  *         # Build constant 0x80808080... mask (and let the C compiler fold it).
  *         non_ascii_mask = 0
  *         for i in range(sizeof(non_ascii_mask) // 2):             # <<<<<<<<<<<<<<
@@ -33783,7 +33710,7 @@ static int __pyx_f_4lxml_5etree_isutf8l(const xmlChar *__pyx_v_s, size_t __pyx_v
     for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
       __pyx_v_i = __pyx_t_4;
 
-      /* "src/lxml/apihelpers.pxi":1423
+      /* "src/lxml/apihelpers.pxi":1418
  *         non_ascii_mask = 0
  *         for i in range(sizeof(non_ascii_mask) // 2):
  *             non_ascii_mask = (non_ascii_mask << 16) | 0x8080             # <<<<<<<<<<<<<<
@@ -33793,7 +33720,7 @@ static int __pyx_f_4lxml_5etree_isutf8l(const xmlChar *__pyx_v_s, size_t __pyx_v
       __pyx_v_non_ascii_mask = ((__pyx_v_non_ascii_mask << 16) | 0x8080);
     }
 
-    /* "src/lxml/apihelpers.pxi":1426
+    /* "src/lxml/apihelpers.pxi":1421
  * 
  *         # Advance to long-aligned character before we start reading longs.
  *         while (<size_t>s) % sizeof(unsigned long) and s < <const_xmlChar *>end:             # <<<<<<<<<<<<<<
@@ -33804,7 +33731,7 @@ static int __pyx_f_4lxml_5etree_isutf8l(const xmlChar *__pyx_v_s, size_t __pyx_v
       __pyx_t_1 = (sizeof(unsigned long));
       if (unlikely(__pyx_t_1 == 0)) {
         PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero");
-        __PYX_ERR(5, 1426, __pyx_L1_error)
+        __PYX_ERR(5, 1421, __pyx_L1_error)
       }
       __pyx_t_5 = ((((size_t)__pyx_v_s) % __pyx_t_1) != 0);
       if (__pyx_t_5) {
@@ -33817,7 +33744,7 @@ static int __pyx_f_4lxml_5etree_isutf8l(const xmlChar *__pyx_v_s, size_t __pyx_v
       __pyx_L8_bool_binop_done:;
       if (!__pyx_t_2) break;
 
-      /* "src/lxml/apihelpers.pxi":1427
+      /* "src/lxml/apihelpers.pxi":1422
  *         # Advance to long-aligned character before we start reading longs.
  *         while (<size_t>s) % sizeof(unsigned long) and s < <const_xmlChar *>end:
  *             if s[0] & 0x80:             # <<<<<<<<<<<<<<
@@ -33827,7 +33754,7 @@ static int __pyx_f_4lxml_5etree_isutf8l(const xmlChar *__pyx_v_s, size_t __pyx_v
       __pyx_t_2 = (((__pyx_v_s[0]) & 0x80) != 0);
       if (__pyx_t_2) {
 
-        /* "src/lxml/apihelpers.pxi":1428
+        /* "src/lxml/apihelpers.pxi":1423
  *         while (<size_t>s) % sizeof(unsigned long) and s < <const_xmlChar *>end:
  *             if s[0] & 0x80:
  *                 return True             # <<<<<<<<<<<<<<
@@ -33837,7 +33764,7 @@ static int __pyx_f_4lxml_5etree_isutf8l(const xmlChar *__pyx_v_s, size_t __pyx_v
         __pyx_r = 1;
         goto __pyx_L0;
 
-        /* "src/lxml/apihelpers.pxi":1427
+        /* "src/lxml/apihelpers.pxi":1422
  *         # Advance to long-aligned character before we start reading longs.
  *         while (<size_t>s) % sizeof(unsigned long) and s < <const_xmlChar *>end:
  *             if s[0] & 0x80:             # <<<<<<<<<<<<<<
@@ -33846,7 +33773,7 @@ static int __pyx_f_4lxml_5etree_isutf8l(const xmlChar *__pyx_v_s, size_t __pyx_v
  */
       }
 
-      /* "src/lxml/apihelpers.pxi":1429
+      /* "src/lxml/apihelpers.pxi":1424
  *             if s[0] & 0x80:
  *                 return True
  *             s += 1             # <<<<<<<<<<<<<<
@@ -33856,7 +33783,7 @@ static int __pyx_f_4lxml_5etree_isutf8l(const xmlChar *__pyx_v_s, size_t __pyx_v
       __pyx_v_s = (__pyx_v_s + 1);
     }
 
-    /* "src/lxml/apihelpers.pxi":1432
+    /* "src/lxml/apihelpers.pxi":1427
  * 
  *         # Read one long at a time
  *         lptr = <const unsigned long*> s             # <<<<<<<<<<<<<<
@@ -33865,7 +33792,7 @@ static int __pyx_f_4lxml_5etree_isutf8l(const xmlChar *__pyx_v_s, size_t __pyx_v
  */
     __pyx_v_lptr = ((unsigned long const *)__pyx_v_s);
 
-    /* "src/lxml/apihelpers.pxi":1433
+    /* "src/lxml/apihelpers.pxi":1428
  *         # Read one long at a time
  *         lptr = <const unsigned long*> s
  *         while lptr < end:             # <<<<<<<<<<<<<<
@@ -33876,7 +33803,7 @@ static int __pyx_f_4lxml_5etree_isutf8l(const xmlChar *__pyx_v_s, size_t __pyx_v
       __pyx_t_2 = ((__pyx_v_lptr < __pyx_v_end) != 0);
       if (!__pyx_t_2) break;
 
-      /* "src/lxml/apihelpers.pxi":1434
+      /* "src/lxml/apihelpers.pxi":1429
  *         lptr = <const unsigned long*> s
  *         while lptr < end:
  *             if lptr[0] & non_ascii_mask:             # <<<<<<<<<<<<<<
@@ -33886,7 +33813,7 @@ static int __pyx_f_4lxml_5etree_isutf8l(const xmlChar *__pyx_v_s, size_t __pyx_v
       __pyx_t_2 = (((__pyx_v_lptr[0]) & __pyx_v_non_ascii_mask) != 0);
       if (__pyx_t_2) {
 
-        /* "src/lxml/apihelpers.pxi":1435
+        /* "src/lxml/apihelpers.pxi":1430
  *         while lptr < end:
  *             if lptr[0] & non_ascii_mask:
  *                 return True             # <<<<<<<<<<<<<<
@@ -33896,7 +33823,7 @@ static int __pyx_f_4lxml_5etree_isutf8l(const xmlChar *__pyx_v_s, size_t __pyx_v
         __pyx_r = 1;
         goto __pyx_L0;
 
-        /* "src/lxml/apihelpers.pxi":1434
+        /* "src/lxml/apihelpers.pxi":1429
  *         lptr = <const unsigned long*> s
  *         while lptr < end:
  *             if lptr[0] & non_ascii_mask:             # <<<<<<<<<<<<<<
@@ -33905,7 +33832,7 @@ static int __pyx_f_4lxml_5etree_isutf8l(const xmlChar *__pyx_v_s, size_t __pyx_v
  */
       }
 
-      /* "src/lxml/apihelpers.pxi":1436
+      /* "src/lxml/apihelpers.pxi":1431
  *             if lptr[0] & non_ascii_mask:
  *                 return True
  *             lptr += 1             # <<<<<<<<<<<<<<
@@ -33915,7 +33842,7 @@ static int __pyx_f_4lxml_5etree_isutf8l(const xmlChar *__pyx_v_s, size_t __pyx_v
       __pyx_v_lptr = (__pyx_v_lptr + 1);
     }
 
-    /* "src/lxml/apihelpers.pxi":1437
+    /* "src/lxml/apihelpers.pxi":1432
  *                 return True
  *             lptr += 1
  *         s = <const_xmlChar *>lptr             # <<<<<<<<<<<<<<
@@ -33924,7 +33851,7 @@ static int __pyx_f_4lxml_5etree_isutf8l(const xmlChar *__pyx_v_s, size_t __pyx_v
  */
     __pyx_v_s = ((const xmlChar *)__pyx_v_lptr);
 
-    /* "src/lxml/apihelpers.pxi":1419
+    /* "src/lxml/apihelpers.pxi":1414
  * 
  *     cdef const unsigned long *end = lptr + length // sizeof(unsigned long)
  *     if length >= sizeof(non_ascii_mask):             # <<<<<<<<<<<<<<
@@ -33933,7 +33860,7 @@ static int __pyx_f_4lxml_5etree_isutf8l(const xmlChar *__pyx_v_s, size_t __pyx_v
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":1439
+  /* "src/lxml/apihelpers.pxi":1434
  *         s = <const_xmlChar *>lptr
  * 
  *     while s < (<const_xmlChar *>end + length % sizeof(unsigned long)):             # <<<<<<<<<<<<<<
@@ -33944,12 +33871,12 @@ static int __pyx_f_4lxml_5etree_isutf8l(const xmlChar *__pyx_v_s, size_t __pyx_v
     __pyx_t_1 = (sizeof(unsigned long));
     if (unlikely(__pyx_t_1 == 0)) {
       PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero");
-      __PYX_ERR(5, 1439, __pyx_L1_error)
+      __PYX_ERR(5, 1434, __pyx_L1_error)
     }
     __pyx_t_2 = ((__pyx_v_s < (((const xmlChar *)__pyx_v_end) + (__pyx_v_length % __pyx_t_1))) != 0);
     if (!__pyx_t_2) break;
 
-    /* "src/lxml/apihelpers.pxi":1440
+    /* "src/lxml/apihelpers.pxi":1435
  * 
  *     while s < (<const_xmlChar *>end + length % sizeof(unsigned long)):
  *         if s[0] & 0x80:             # <<<<<<<<<<<<<<
@@ -33959,7 +33886,7 @@ static int __pyx_f_4lxml_5etree_isutf8l(const xmlChar *__pyx_v_s, size_t __pyx_v
     __pyx_t_2 = (((__pyx_v_s[0]) & 0x80) != 0);
     if (__pyx_t_2) {
 
-      /* "src/lxml/apihelpers.pxi":1441
+      /* "src/lxml/apihelpers.pxi":1436
  *     while s < (<const_xmlChar *>end + length % sizeof(unsigned long)):
  *         if s[0] & 0x80:
  *             return True             # <<<<<<<<<<<<<<
@@ -33969,7 +33896,7 @@ static int __pyx_f_4lxml_5etree_isutf8l(const xmlChar *__pyx_v_s, size_t __pyx_v
       __pyx_r = 1;
       goto __pyx_L0;
 
-      /* "src/lxml/apihelpers.pxi":1440
+      /* "src/lxml/apihelpers.pxi":1435
  * 
  *     while s < (<const_xmlChar *>end + length % sizeof(unsigned long)):
  *         if s[0] & 0x80:             # <<<<<<<<<<<<<<
@@ -33978,7 +33905,7 @@ static int __pyx_f_4lxml_5etree_isutf8l(const xmlChar *__pyx_v_s, size_t __pyx_v
  */
     }
 
-    /* "src/lxml/apihelpers.pxi":1442
+    /* "src/lxml/apihelpers.pxi":1437
  *         if s[0] & 0x80:
  *             return True
  *         s += 1             # <<<<<<<<<<<<<<
@@ -33988,7 +33915,7 @@ static int __pyx_f_4lxml_5etree_isutf8l(const xmlChar *__pyx_v_s, size_t __pyx_v
     __pyx_v_s = (__pyx_v_s + 1);
   }
 
-  /* "src/lxml/apihelpers.pxi":1444
+  /* "src/lxml/apihelpers.pxi":1439
  *         s += 1
  * 
  *     return False             # <<<<<<<<<<<<<<
@@ -33998,7 +33925,7 @@ static int __pyx_f_4lxml_5etree_isutf8l(const xmlChar *__pyx_v_s, size_t __pyx_v
   __pyx_r = 0;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":1410
+  /* "src/lxml/apihelpers.pxi":1405
  *     return False
  * 
  * cdef bint isutf8l(const_xmlChar* s, size_t length):             # <<<<<<<<<<<<<<
@@ -34015,7 +33942,7 @@ static int __pyx_f_4lxml_5etree_isutf8l(const xmlChar *__pyx_v_s, size_t __pyx_v
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":1446
+/* "src/lxml/apihelpers.pxi":1441
  *     return False
  * 
  * cdef int _is_valid_xml_ascii(bytes pystring):             # <<<<<<<<<<<<<<
@@ -34035,7 +33962,7 @@ static int __pyx_f_4lxml_5etree__is_valid_xml_ascii(PyObject *__pyx_v_pystring)
   int __pyx_t_6;
   __Pyx_RefNannySetupContext("_is_valid_xml_ascii", 0);
 
-  /* "src/lxml/apihelpers.pxi":1451
+  /* "src/lxml/apihelpers.pxi":1446
  *     # When ch is a *signed* char, non-ascii characters are negative integers
  *     # and xmlIsChar_ch does not accept them.
  *     for ch in pystring:             # <<<<<<<<<<<<<<
@@ -34044,7 +33971,7 @@ static int __pyx_f_4lxml_5etree__is_valid_xml_ascii(PyObject *__pyx_v_pystring)
  */
   if (unlikely(__pyx_v_pystring == Py_None)) {
     PyErr_SetString(PyExc_TypeError, "'NoneType' is not iterable");
-    __PYX_ERR(5, 1451, __pyx_L1_error)
+    __PYX_ERR(5, 1446, __pyx_L1_error)
   }
   __Pyx_INCREF(__pyx_v_pystring);
   __pyx_t_1 = __pyx_v_pystring;
@@ -34054,7 +33981,7 @@ static int __pyx_f_4lxml_5etree__is_valid_xml_ascii(PyObject *__pyx_v_pystring)
     __pyx_t_2 = __pyx_t_5;
     __pyx_v_ch = (__pyx_t_2[0]);
 
-    /* "src/lxml/apihelpers.pxi":1452
+    /* "src/lxml/apihelpers.pxi":1447
  *     # and xmlIsChar_ch does not accept them.
  *     for ch in pystring:
  *         if not tree.xmlIsChar_ch(ch):             # <<<<<<<<<<<<<<
@@ -34064,7 +33991,7 @@ static int __pyx_f_4lxml_5etree__is_valid_xml_ascii(PyObject *__pyx_v_pystring)
     __pyx_t_6 = ((!(xmlIsChar_ch(__pyx_v_ch) != 0)) != 0);
     if (__pyx_t_6) {
 
-      /* "src/lxml/apihelpers.pxi":1453
+      /* "src/lxml/apihelpers.pxi":1448
  *     for ch in pystring:
  *         if not tree.xmlIsChar_ch(ch):
  *             return 0             # <<<<<<<<<<<<<<
@@ -34075,7 +34002,7 @@ static int __pyx_f_4lxml_5etree__is_valid_xml_ascii(PyObject *__pyx_v_pystring)
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
       goto __pyx_L0;
 
-      /* "src/lxml/apihelpers.pxi":1452
+      /* "src/lxml/apihelpers.pxi":1447
  *     # and xmlIsChar_ch does not accept them.
  *     for ch in pystring:
  *         if not tree.xmlIsChar_ch(ch):             # <<<<<<<<<<<<<<
@@ -34086,7 +34013,7 @@ static int __pyx_f_4lxml_5etree__is_valid_xml_ascii(PyObject *__pyx_v_pystring)
   }
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "src/lxml/apihelpers.pxi":1454
+  /* "src/lxml/apihelpers.pxi":1449
  *         if not tree.xmlIsChar_ch(ch):
  *             return 0
  *     return 1             # <<<<<<<<<<<<<<
@@ -34096,7 +34023,7 @@ static int __pyx_f_4lxml_5etree__is_valid_xml_ascii(PyObject *__pyx_v_pystring)
   __pyx_r = 1;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":1446
+  /* "src/lxml/apihelpers.pxi":1441
  *     return False
  * 
  * cdef int _is_valid_xml_ascii(bytes pystring):             # <<<<<<<<<<<<<<
@@ -34114,7 +34041,7 @@ static int __pyx_f_4lxml_5etree__is_valid_xml_ascii(PyObject *__pyx_v_pystring)
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":1456
+/* "src/lxml/apihelpers.pxi":1451
  *     return 1
  * 
  * cdef bint _is_valid_xml_utf8(bytes pystring):             # <<<<<<<<<<<<<<
@@ -34133,7 +34060,7 @@ static int __pyx_f_4lxml_5etree__is_valid_xml_utf8(PyObject *__pyx_v_pystring) {
   int __pyx_t_3;
   __Pyx_RefNannySetupContext("_is_valid_xml_utf8", 0);
 
-  /* "src/lxml/apihelpers.pxi":1458
+  /* "src/lxml/apihelpers.pxi":1453
  * cdef bint _is_valid_xml_utf8(bytes pystring):
  *     u"""Check if a string is like valid UTF-8 XML content."""
  *     cdef const_xmlChar* s = _xcstr(pystring)             # <<<<<<<<<<<<<<
@@ -34142,7 +34069,7 @@ static int __pyx_f_4lxml_5etree__is_valid_xml_utf8(PyObject *__pyx_v_pystring) {
  */
   __pyx_v_s = (const xmlChar*)PyBytes_AS_STRING(__pyx_v_pystring);
 
-  /* "src/lxml/apihelpers.pxi":1459
+  /* "src/lxml/apihelpers.pxi":1454
  *     u"""Check if a string is like valid UTF-8 XML content."""
  *     cdef const_xmlChar* s = _xcstr(pystring)
  *     cdef const_xmlChar* c_end = s + len(pystring)             # <<<<<<<<<<<<<<
@@ -34151,12 +34078,12 @@ static int __pyx_f_4lxml_5etree__is_valid_xml_utf8(PyObject *__pyx_v_pystring) {
  */
   if (unlikely(__pyx_v_pystring == Py_None)) {
     PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
-    __PYX_ERR(5, 1459, __pyx_L1_error)
+    __PYX_ERR(5, 1454, __pyx_L1_error)
   }
-  __pyx_t_1 = PyBytes_GET_SIZE(__pyx_v_pystring); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(5, 1459, __pyx_L1_error)
+  __pyx_t_1 = PyBytes_GET_SIZE(__pyx_v_pystring); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(5, 1454, __pyx_L1_error)
   __pyx_v_c_end = (__pyx_v_s + __pyx_t_1);
 
-  /* "src/lxml/apihelpers.pxi":1460
+  /* "src/lxml/apihelpers.pxi":1455
  *     cdef const_xmlChar* s = _xcstr(pystring)
  *     cdef const_xmlChar* c_end = s + len(pystring)
  *     cdef unsigned long next3 = 0             # <<<<<<<<<<<<<<
@@ -34165,7 +34092,7 @@ static int __pyx_f_4lxml_5etree__is_valid_xml_utf8(PyObject *__pyx_v_pystring) {
  */
   __pyx_v_next3 = 0;
 
-  /* "src/lxml/apihelpers.pxi":1461
+  /* "src/lxml/apihelpers.pxi":1456
  *     cdef const_xmlChar* c_end = s + len(pystring)
  *     cdef unsigned long next3 = 0
  *     if s < c_end - 2:             # <<<<<<<<<<<<<<
@@ -34175,7 +34102,7 @@ static int __pyx_f_4lxml_5etree__is_valid_xml_utf8(PyObject *__pyx_v_pystring) {
   __pyx_t_2 = ((__pyx_v_s < (__pyx_v_c_end - 2)) != 0);
   if (__pyx_t_2) {
 
-    /* "src/lxml/apihelpers.pxi":1462
+    /* "src/lxml/apihelpers.pxi":1457
  *     cdef unsigned long next3 = 0
  *     if s < c_end - 2:
  *         next3 = (s[0] << 8) | (s[1])             # <<<<<<<<<<<<<<
@@ -34184,7 +34111,7 @@ static int __pyx_f_4lxml_5etree__is_valid_xml_utf8(PyObject *__pyx_v_pystring) {
  */
     __pyx_v_next3 = (((__pyx_v_s[0]) << 8) | (__pyx_v_s[1]));
 
-    /* "src/lxml/apihelpers.pxi":1461
+    /* "src/lxml/apihelpers.pxi":1456
  *     cdef const_xmlChar* c_end = s + len(pystring)
  *     cdef unsigned long next3 = 0
  *     if s < c_end - 2:             # <<<<<<<<<<<<<<
@@ -34193,7 +34120,7 @@ static int __pyx_f_4lxml_5etree__is_valid_xml_utf8(PyObject *__pyx_v_pystring) {
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":1464
+  /* "src/lxml/apihelpers.pxi":1459
  *         next3 = (s[0] << 8) | (s[1])
  * 
  *     while s < c_end - 2:             # <<<<<<<<<<<<<<
@@ -34204,7 +34131,7 @@ static int __pyx_f_4lxml_5etree__is_valid_xml_utf8(PyObject *__pyx_v_pystring) {
     __pyx_t_2 = ((__pyx_v_s < (__pyx_v_c_end - 2)) != 0);
     if (!__pyx_t_2) break;
 
-    /* "src/lxml/apihelpers.pxi":1465
+    /* "src/lxml/apihelpers.pxi":1460
  * 
  *     while s < c_end - 2:
  *         next3 = 0x00ffffff & ((next3 << 8) | s[2])             # <<<<<<<<<<<<<<
@@ -34213,7 +34140,7 @@ static int __pyx_f_4lxml_5etree__is_valid_xml_utf8(PyObject *__pyx_v_pystring) {
  */
     __pyx_v_next3 = (0x00ffffff & ((__pyx_v_next3 << 8) | (__pyx_v_s[2])));
 
-    /* "src/lxml/apihelpers.pxi":1466
+    /* "src/lxml/apihelpers.pxi":1461
  *     while s < c_end - 2:
  *         next3 = 0x00ffffff & ((next3 << 8) | s[2])
  *         if s[0] & 0x80:             # <<<<<<<<<<<<<<
@@ -34223,7 +34150,7 @@ static int __pyx_f_4lxml_5etree__is_valid_xml_utf8(PyObject *__pyx_v_pystring) {
     __pyx_t_2 = (((__pyx_v_s[0]) & 0x80) != 0);
     if (__pyx_t_2) {
 
-      /* "src/lxml/apihelpers.pxi":1469
+      /* "src/lxml/apihelpers.pxi":1464
  *             # 0xefbfbe and 0xefbfbf are utf-8 encodings of
  *             # forbidden characters \ufffe and \uffff
  *             if next3 == 0x00efbfbe or next3 == 0x00efbfbf:             # <<<<<<<<<<<<<<
@@ -34234,7 +34161,7 @@ static int __pyx_f_4lxml_5etree__is_valid_xml_utf8(PyObject *__pyx_v_pystring) {
         case 0x00efbfbe:
         case 0x00efbfbf:
 
-        /* "src/lxml/apihelpers.pxi":1470
+        /* "src/lxml/apihelpers.pxi":1465
  *             # forbidden characters \ufffe and \uffff
  *             if next3 == 0x00efbfbe or next3 == 0x00efbfbf:
  *                 return 0             # <<<<<<<<<<<<<<
@@ -34244,7 +34171,7 @@ static int __pyx_f_4lxml_5etree__is_valid_xml_utf8(PyObject *__pyx_v_pystring) {
         __pyx_r = 0;
         goto __pyx_L0;
 
-        /* "src/lxml/apihelpers.pxi":1469
+        /* "src/lxml/apihelpers.pxi":1464
  *             # 0xefbfbe and 0xefbfbf are utf-8 encodings of
  *             # forbidden characters \ufffe and \uffff
  *             if next3 == 0x00efbfbe or next3 == 0x00efbfbf:             # <<<<<<<<<<<<<<
@@ -34255,7 +34182,7 @@ static int __pyx_f_4lxml_5etree__is_valid_xml_utf8(PyObject *__pyx_v_pystring) {
         default: break;
       }
 
-      /* "src/lxml/apihelpers.pxi":1474
+      /* "src/lxml/apihelpers.pxi":1469
  *             # \ud800 and \udfff. Anything between them (inclusive)
  *             # is forbidden, because they are surrogate blocks in utf-16.
  *             if 0x00eda080 <= next3 <= 0x00edbfbf:             # <<<<<<<<<<<<<<
@@ -34269,7 +34196,7 @@ static int __pyx_f_4lxml_5etree__is_valid_xml_utf8(PyObject *__pyx_v_pystring) {
       __pyx_t_3 = (__pyx_t_2 != 0);
       if (__pyx_t_3) {
 
-        /* "src/lxml/apihelpers.pxi":1475
+        /* "src/lxml/apihelpers.pxi":1470
  *             # is forbidden, because they are surrogate blocks in utf-16.
  *             if 0x00eda080 <= next3 <= 0x00edbfbf:
  *                 return 0             # <<<<<<<<<<<<<<
@@ -34279,7 +34206,7 @@ static int __pyx_f_4lxml_5etree__is_valid_xml_utf8(PyObject *__pyx_v_pystring) {
         __pyx_r = 0;
         goto __pyx_L0;
 
-        /* "src/lxml/apihelpers.pxi":1474
+        /* "src/lxml/apihelpers.pxi":1469
  *             # \ud800 and \udfff. Anything between them (inclusive)
  *             # is forbidden, because they are surrogate blocks in utf-16.
  *             if 0x00eda080 <= next3 <= 0x00edbfbf:             # <<<<<<<<<<<<<<
@@ -34288,7 +34215,7 @@ static int __pyx_f_4lxml_5etree__is_valid_xml_utf8(PyObject *__pyx_v_pystring) {
  */
       }
 
-      /* "src/lxml/apihelpers.pxi":1466
+      /* "src/lxml/apihelpers.pxi":1461
  *     while s < c_end - 2:
  *         next3 = 0x00ffffff & ((next3 << 8) | s[2])
  *         if s[0] & 0x80:             # <<<<<<<<<<<<<<
@@ -34298,7 +34225,7 @@ static int __pyx_f_4lxml_5etree__is_valid_xml_utf8(PyObject *__pyx_v_pystring) {
       goto __pyx_L6;
     }
 
-    /* "src/lxml/apihelpers.pxi":1476
+    /* "src/lxml/apihelpers.pxi":1471
  *             if 0x00eda080 <= next3 <= 0x00edbfbf:
  *                 return 0
  *         elif not tree.xmlIsChar_ch(s[0]):             # <<<<<<<<<<<<<<
@@ -34308,7 +34235,7 @@ static int __pyx_f_4lxml_5etree__is_valid_xml_utf8(PyObject *__pyx_v_pystring) {
     __pyx_t_3 = ((!(xmlIsChar_ch((__pyx_v_s[0])) != 0)) != 0);
     if (__pyx_t_3) {
 
-      /* "src/lxml/apihelpers.pxi":1477
+      /* "src/lxml/apihelpers.pxi":1472
  *                 return 0
  *         elif not tree.xmlIsChar_ch(s[0]):
  *             return 0  # invalid ascii char             # <<<<<<<<<<<<<<
@@ -34318,7 +34245,7 @@ static int __pyx_f_4lxml_5etree__is_valid_xml_utf8(PyObject *__pyx_v_pystring) {
       __pyx_r = 0;
       goto __pyx_L0;
 
-      /* "src/lxml/apihelpers.pxi":1476
+      /* "src/lxml/apihelpers.pxi":1471
  *             if 0x00eda080 <= next3 <= 0x00edbfbf:
  *                 return 0
  *         elif not tree.xmlIsChar_ch(s[0]):             # <<<<<<<<<<<<<<
@@ -34328,7 +34255,7 @@ static int __pyx_f_4lxml_5etree__is_valid_xml_utf8(PyObject *__pyx_v_pystring) {
     }
     __pyx_L6:;
 
-    /* "src/lxml/apihelpers.pxi":1478
+    /* "src/lxml/apihelpers.pxi":1473
  *         elif not tree.xmlIsChar_ch(s[0]):
  *             return 0  # invalid ascii char
  *         s += 1             # <<<<<<<<<<<<<<
@@ -34338,7 +34265,7 @@ static int __pyx_f_4lxml_5etree__is_valid_xml_utf8(PyObject *__pyx_v_pystring) {
     __pyx_v_s = (__pyx_v_s + 1);
   }
 
-  /* "src/lxml/apihelpers.pxi":1480
+  /* "src/lxml/apihelpers.pxi":1475
  *         s += 1
  * 
  *     while s < c_end:             # <<<<<<<<<<<<<<
@@ -34349,7 +34276,7 @@ static int __pyx_f_4lxml_5etree__is_valid_xml_utf8(PyObject *__pyx_v_pystring) {
     __pyx_t_3 = ((__pyx_v_s < __pyx_v_c_end) != 0);
     if (!__pyx_t_3) break;
 
-    /* "src/lxml/apihelpers.pxi":1481
+    /* "src/lxml/apihelpers.pxi":1476
  * 
  *     while s < c_end:
  *         if not s[0] & 0x80 and not tree.xmlIsChar_ch(s[0]):             # <<<<<<<<<<<<<<
@@ -34367,7 +34294,7 @@ static int __pyx_f_4lxml_5etree__is_valid_xml_utf8(PyObject *__pyx_v_pystring) {
     __pyx_L11_bool_binop_done:;
     if (__pyx_t_3) {
 
-      /* "src/lxml/apihelpers.pxi":1482
+      /* "src/lxml/apihelpers.pxi":1477
  *     while s < c_end:
  *         if not s[0] & 0x80 and not tree.xmlIsChar_ch(s[0]):
  *             return 0  # invalid ascii char             # <<<<<<<<<<<<<<
@@ -34377,7 +34304,7 @@ static int __pyx_f_4lxml_5etree__is_valid_xml_utf8(PyObject *__pyx_v_pystring) {
       __pyx_r = 0;
       goto __pyx_L0;
 
-      /* "src/lxml/apihelpers.pxi":1481
+      /* "src/lxml/apihelpers.pxi":1476
  * 
  *     while s < c_end:
  *         if not s[0] & 0x80 and not tree.xmlIsChar_ch(s[0]):             # <<<<<<<<<<<<<<
@@ -34386,7 +34313,7 @@ static int __pyx_f_4lxml_5etree__is_valid_xml_utf8(PyObject *__pyx_v_pystring) {
  */
     }
 
-    /* "src/lxml/apihelpers.pxi":1483
+    /* "src/lxml/apihelpers.pxi":1478
  *         if not s[0] & 0x80 and not tree.xmlIsChar_ch(s[0]):
  *             return 0  # invalid ascii char
  *         s += 1             # <<<<<<<<<<<<<<
@@ -34396,7 +34323,7 @@ static int __pyx_f_4lxml_5etree__is_valid_xml_utf8(PyObject *__pyx_v_pystring) {
     __pyx_v_s = (__pyx_v_s + 1);
   }
 
-  /* "src/lxml/apihelpers.pxi":1485
+  /* "src/lxml/apihelpers.pxi":1480
  *         s += 1
  * 
  *     return 1             # <<<<<<<<<<<<<<
@@ -34406,7 +34333,7 @@ static int __pyx_f_4lxml_5etree__is_valid_xml_utf8(PyObject *__pyx_v_pystring) {
   __pyx_r = 1;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":1456
+  /* "src/lxml/apihelpers.pxi":1451
  *     return 1
  * 
  * cdef bint _is_valid_xml_utf8(bytes pystring):             # <<<<<<<<<<<<<<
@@ -34423,7 +34350,7 @@ static int __pyx_f_4lxml_5etree__is_valid_xml_utf8(PyObject *__pyx_v_pystring) {
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":1487
+/* "src/lxml/apihelpers.pxi":1482
  *     return 1
  * 
  * cdef inline object funicodeOrNone(const_xmlChar* s):             # <<<<<<<<<<<<<<
@@ -34438,7 +34365,7 @@ static CYTHON_INLINE PyObject *__pyx_f_4lxml_5etree_funicodeOrNone(const xmlChar
   PyObject *__pyx_t_2 = NULL;
   __Pyx_RefNannySetupContext("funicodeOrNone", 0);
 
-  /* "src/lxml/apihelpers.pxi":1488
+  /* "src/lxml/apihelpers.pxi":1483
  * 
  * cdef inline object funicodeOrNone(const_xmlChar* s):
  *     return funicode(s) if s is not NULL else None             # <<<<<<<<<<<<<<
@@ -34447,7 +34374,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_ERR(5, 1488, __pyx_L1_error)
+    __pyx_t_2 = __pyx_f_4lxml_5etree_funicode(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1483, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_2);
     __pyx_t_1 = __pyx_t_2;
     __pyx_t_2 = 0;
@@ -34459,7 +34386,7 @@ static CYTHON_INLINE PyObject *__pyx_f_4lxml_5etree_funicodeOrNone(const xmlChar
   __pyx_t_1 = 0;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":1487
+  /* "src/lxml/apihelpers.pxi":1482
  *     return 1
  * 
  * cdef inline object funicodeOrNone(const_xmlChar* s):             # <<<<<<<<<<<<<<
@@ -34479,7 +34406,7 @@ static CYTHON_INLINE PyObject *__pyx_f_4lxml_5etree_funicodeOrNone(const xmlChar
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":1490
+/* "src/lxml/apihelpers.pxi":1485
  *     return funicode(s) if s is not NULL else None
  * 
  * cdef inline object funicodeOrEmpty(const_xmlChar* s):             # <<<<<<<<<<<<<<
@@ -34494,7 +34421,7 @@ static CYTHON_INLINE PyObject *__pyx_f_4lxml_5etree_funicodeOrEmpty(const xmlCha
   PyObject *__pyx_t_2 = NULL;
   __Pyx_RefNannySetupContext("funicodeOrEmpty", 0);
 
-  /* "src/lxml/apihelpers.pxi":1491
+  /* "src/lxml/apihelpers.pxi":1486
  * 
  * cdef inline object funicodeOrEmpty(const_xmlChar* s):
  *     return funicode(s) if s is not NULL else ''             # <<<<<<<<<<<<<<
@@ -34503,7 +34430,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_ERR(5, 1491, __pyx_L1_error)
+    __pyx_t_2 = __pyx_f_4lxml_5etree_funicode(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1486, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_2);
     __pyx_t_1 = __pyx_t_2;
     __pyx_t_2 = 0;
@@ -34515,7 +34442,7 @@ static CYTHON_INLINE PyObject *__pyx_f_4lxml_5etree_funicodeOrEmpty(const xmlCha
   __pyx_t_1 = 0;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":1490
+  /* "src/lxml/apihelpers.pxi":1485
  *     return funicode(s) if s is not NULL else None
  * 
  * cdef inline object funicodeOrEmpty(const_xmlChar* s):             # <<<<<<<<<<<<<<
@@ -34535,7 +34462,7 @@ static CYTHON_INLINE PyObject *__pyx_f_4lxml_5etree_funicodeOrEmpty(const xmlCha
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":1493
+/* "src/lxml/apihelpers.pxi":1488
  *     return funicode(s) if s is not NULL else ''
  * 
  * cdef object funicode(const_xmlChar* s):             # <<<<<<<<<<<<<<
@@ -34553,7 +34480,7 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
   PyObject *__pyx_t_2 = NULL;
   __Pyx_RefNannySetupContext("funicode", 0);
 
-  /* "src/lxml/apihelpers.pxi":1497
+  /* "src/lxml/apihelpers.pxi":1492
  *     cdef const_xmlChar* spos
  *     cdef bint is_non_ascii
  *     if python.LXML_UNICODE_STRINGS:             # <<<<<<<<<<<<<<
@@ -34563,7 +34490,7 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
   __pyx_t_1 = (LXML_UNICODE_STRINGS != 0);
   if (__pyx_t_1) {
 
-    /* "src/lxml/apihelpers.pxi":1498
+    /* "src/lxml/apihelpers.pxi":1493
  *     cdef bint is_non_ascii
  *     if python.LXML_UNICODE_STRINGS:
  *         return s.decode('UTF-8')             # <<<<<<<<<<<<<<
@@ -34571,13 +34498,13 @@ 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 const *)__pyx_v_s), 0, strlen(((char const *)__pyx_v_s)), NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1498, __pyx_L1_error)
+    __pyx_t_2 = __Pyx_decode_c_string(((char const *)__pyx_v_s), 0, strlen(((char const *)__pyx_v_s)), NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1493, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_2);
     __pyx_r = __pyx_t_2;
     __pyx_t_2 = 0;
     goto __pyx_L0;
 
-    /* "src/lxml/apihelpers.pxi":1497
+    /* "src/lxml/apihelpers.pxi":1492
  *     cdef const_xmlChar* spos
  *     cdef bint is_non_ascii
  *     if python.LXML_UNICODE_STRINGS:             # <<<<<<<<<<<<<<
@@ -34586,7 +34513,7 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":1499
+  /* "src/lxml/apihelpers.pxi":1494
  *     if python.LXML_UNICODE_STRINGS:
  *         return s.decode('UTF-8')
  *     spos = s             # <<<<<<<<<<<<<<
@@ -34595,7 +34522,7 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
  */
   __pyx_v_spos = __pyx_v_s;
 
-  /* "src/lxml/apihelpers.pxi":1500
+  /* "src/lxml/apihelpers.pxi":1495
  *         return s.decode('UTF-8')
  *     spos = s
  *     is_non_ascii = 0             # <<<<<<<<<<<<<<
@@ -34604,7 +34531,7 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
  */
   __pyx_v_is_non_ascii = 0;
 
-  /* "src/lxml/apihelpers.pxi":1501
+  /* "src/lxml/apihelpers.pxi":1496
  *     spos = s
  *     is_non_ascii = 0
  *     while spos[0] != c'\0':             # <<<<<<<<<<<<<<
@@ -34615,7 +34542,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;
 
-    /* "src/lxml/apihelpers.pxi":1502
+    /* "src/lxml/apihelpers.pxi":1497
  *     is_non_ascii = 0
  *     while spos[0] != c'\0':
  *         if spos[0] & 0x80:             # <<<<<<<<<<<<<<
@@ -34625,7 +34552,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) {
 
-      /* "src/lxml/apihelpers.pxi":1503
+      /* "src/lxml/apihelpers.pxi":1498
  *     while spos[0] != c'\0':
  *         if spos[0] & 0x80:
  *             is_non_ascii = 1             # <<<<<<<<<<<<<<
@@ -34634,7 +34561,7 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
  */
       __pyx_v_is_non_ascii = 1;
 
-      /* "src/lxml/apihelpers.pxi":1504
+      /* "src/lxml/apihelpers.pxi":1499
  *         if spos[0] & 0x80:
  *             is_non_ascii = 1
  *             break             # <<<<<<<<<<<<<<
@@ -34643,7 +34570,7 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
  */
       goto __pyx_L5_break;
 
-      /* "src/lxml/apihelpers.pxi":1502
+      /* "src/lxml/apihelpers.pxi":1497
  *     is_non_ascii = 0
  *     while spos[0] != c'\0':
  *         if spos[0] & 0x80:             # <<<<<<<<<<<<<<
@@ -34652,7 +34579,7 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
  */
     }
 
-    /* "src/lxml/apihelpers.pxi":1505
+    /* "src/lxml/apihelpers.pxi":1500
  *             is_non_ascii = 1
  *             break
  *         spos += 1             # <<<<<<<<<<<<<<
@@ -34663,7 +34590,7 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
   }
   __pyx_L5_break:;
 
-  /* "src/lxml/apihelpers.pxi":1506
+  /* "src/lxml/apihelpers.pxi":1501
  *             break
  *         spos += 1
  *     slen = spos - s             # <<<<<<<<<<<<<<
@@ -34672,7 +34599,7 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
  */
   __pyx_v_slen = (__pyx_v_spos - __pyx_v_s);
 
-  /* "src/lxml/apihelpers.pxi":1507
+  /* "src/lxml/apihelpers.pxi":1502
  *         spos += 1
  *     slen = spos - s
  *     if spos[0] != c'\0':             # <<<<<<<<<<<<<<
@@ -34682,7 +34609,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) {
 
-    /* "src/lxml/apihelpers.pxi":1508
+    /* "src/lxml/apihelpers.pxi":1503
  *     slen = spos - s
  *     if spos[0] != c'\0':
  *         slen += cstring_h.strlen(<const char*> spos)             # <<<<<<<<<<<<<<
@@ -34691,7 +34618,7 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
  */
     __pyx_v_slen = (__pyx_v_slen + strlen(((char const *)__pyx_v_spos)));
 
-    /* "src/lxml/apihelpers.pxi":1507
+    /* "src/lxml/apihelpers.pxi":1502
  *         spos += 1
  *     slen = spos - s
  *     if spos[0] != c'\0':             # <<<<<<<<<<<<<<
@@ -34700,7 +34627,7 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":1509
+  /* "src/lxml/apihelpers.pxi":1504
  *     if spos[0] != c'\0':
  *         slen += cstring_h.strlen(<const char*> spos)
  *     if is_non_ascii:             # <<<<<<<<<<<<<<
@@ -34710,7 +34637,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) {
 
-    /* "src/lxml/apihelpers.pxi":1510
+    /* "src/lxml/apihelpers.pxi":1505
  *         slen += cstring_h.strlen(<const char*> spos)
  *     if is_non_ascii:
  *         return s[:slen].decode('UTF-8')             # <<<<<<<<<<<<<<
@@ -34718,13 +34645,13 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
  * 
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_2 = __Pyx_decode_c_string(((char const *)__pyx_v_s), 0, __pyx_v_slen, NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1510, __pyx_L1_error)
+    __pyx_t_2 = __Pyx_decode_c_string(((char const *)__pyx_v_s), 0, __pyx_v_slen, NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1505, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_2);
     __pyx_r = __pyx_t_2;
     __pyx_t_2 = 0;
     goto __pyx_L0;
 
-    /* "src/lxml/apihelpers.pxi":1509
+    /* "src/lxml/apihelpers.pxi":1504
  *     if spos[0] != c'\0':
  *         slen += cstring_h.strlen(<const char*> spos)
  *     if is_non_ascii:             # <<<<<<<<<<<<<<
@@ -34733,7 +34660,7 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":1511
+  /* "src/lxml/apihelpers.pxi":1506
  *     if is_non_ascii:
  *         return s[:slen].decode('UTF-8')
  *     return <bytes>s[:slen]             # <<<<<<<<<<<<<<
@@ -34741,14 +34668,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_ERR(5, 1511, __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_ERR(5, 1506, __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;
 
-  /* "src/lxml/apihelpers.pxi":1493
+  /* "src/lxml/apihelpers.pxi":1488
  *     return funicode(s) if s is not NULL else ''
  * 
  * cdef object funicode(const_xmlChar* s):             # <<<<<<<<<<<<<<
@@ -34767,7 +34694,7 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":1513
+/* "src/lxml/apihelpers.pxi":1508
  *     return <bytes>s[:slen]
  * 
  * cdef bytes _utf8(object s):             # <<<<<<<<<<<<<<
@@ -34787,7 +34714,7 @@ static PyObject *__pyx_f_4lxml_5etree__utf8(PyObject *__pyx_v_s) {
   PyObject *__pyx_t_5 = NULL;
   __Pyx_RefNannySetupContext("_utf8", 0);
 
-  /* "src/lxml/apihelpers.pxi":1520
+  /* "src/lxml/apihelpers.pxi":1515
  *     cdef int valid
  *     cdef bytes utf8_string
  *     if python.IS_PYTHON2 and type(s) is bytes:             # <<<<<<<<<<<<<<
@@ -34806,7 +34733,7 @@ static PyObject *__pyx_f_4lxml_5etree__utf8(PyObject *__pyx_v_s) {
   __pyx_L4_bool_binop_done:;
   if (__pyx_t_1) {
 
-    /* "src/lxml/apihelpers.pxi":1521
+    /* "src/lxml/apihelpers.pxi":1516
  *     cdef bytes utf8_string
  *     if python.IS_PYTHON2 and type(s) is bytes:
  *         utf8_string = <bytes>s             # <<<<<<<<<<<<<<
@@ -34818,7 +34745,7 @@ static PyObject *__pyx_f_4lxml_5etree__utf8(PyObject *__pyx_v_s) {
     __pyx_v_utf8_string = ((PyObject*)__pyx_t_4);
     __pyx_t_4 = 0;
 
-    /* "src/lxml/apihelpers.pxi":1522
+    /* "src/lxml/apihelpers.pxi":1517
  *     if python.IS_PYTHON2 and type(s) is bytes:
  *         utf8_string = <bytes>s
  *         valid = _is_valid_xml_ascii(utf8_string)             # <<<<<<<<<<<<<<
@@ -34827,7 +34754,7 @@ static PyObject *__pyx_f_4lxml_5etree__utf8(PyObject *__pyx_v_s) {
  */
     __pyx_v_valid = __pyx_f_4lxml_5etree__is_valid_xml_ascii(__pyx_v_utf8_string);
 
-    /* "src/lxml/apihelpers.pxi":1520
+    /* "src/lxml/apihelpers.pxi":1515
  *     cdef int valid
  *     cdef bytes utf8_string
  *     if python.IS_PYTHON2 and type(s) is bytes:             # <<<<<<<<<<<<<<
@@ -34837,7 +34764,7 @@ static PyObject *__pyx_f_4lxml_5etree__utf8(PyObject *__pyx_v_s) {
     goto __pyx_L3;
   }
 
-  /* "src/lxml/apihelpers.pxi":1523
+  /* "src/lxml/apihelpers.pxi":1518
  *         utf8_string = <bytes>s
  *         valid = _is_valid_xml_ascii(utf8_string)
  *     elif isinstance(s, unicode):             # <<<<<<<<<<<<<<
@@ -34848,7 +34775,7 @@ static PyObject *__pyx_f_4lxml_5etree__utf8(PyObject *__pyx_v_s) {
   __pyx_t_3 = (__pyx_t_1 != 0);
   if (__pyx_t_3) {
 
-    /* "src/lxml/apihelpers.pxi":1524
+    /* "src/lxml/apihelpers.pxi":1519
  *         valid = _is_valid_xml_ascii(utf8_string)
  *     elif isinstance(s, unicode):
  *         utf8_string = (<unicode>s).encode('utf8')             # <<<<<<<<<<<<<<
@@ -34857,14 +34784,14 @@ 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 '%.30s'", "encode");
-      __PYX_ERR(5, 1524, __pyx_L1_error)
+      __PYX_ERR(5, 1519, __pyx_L1_error)
     }
-    __pyx_t_4 = PyUnicode_AsUTF8String(((PyObject*)__pyx_v_s)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1524, __pyx_L1_error)
+    __pyx_t_4 = PyUnicode_AsUTF8String(((PyObject*)__pyx_v_s)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1519, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_4);
     __pyx_v_utf8_string = ((PyObject*)__pyx_t_4);
     __pyx_t_4 = 0;
 
-    /* "src/lxml/apihelpers.pxi":1525
+    /* "src/lxml/apihelpers.pxi":1520
  *     elif isinstance(s, unicode):
  *         utf8_string = (<unicode>s).encode('utf8')
  *         valid = _is_valid_xml_utf8(utf8_string)             # <<<<<<<<<<<<<<
@@ -34873,7 +34800,7 @@ static PyObject *__pyx_f_4lxml_5etree__utf8(PyObject *__pyx_v_s) {
  */
     __pyx_v_valid = __pyx_f_4lxml_5etree__is_valid_xml_utf8(__pyx_v_utf8_string);
 
-    /* "src/lxml/apihelpers.pxi":1523
+    /* "src/lxml/apihelpers.pxi":1518
  *         utf8_string = <bytes>s
  *         valid = _is_valid_xml_ascii(utf8_string)
  *     elif isinstance(s, unicode):             # <<<<<<<<<<<<<<
@@ -34883,7 +34810,7 @@ static PyObject *__pyx_f_4lxml_5etree__utf8(PyObject *__pyx_v_s) {
     goto __pyx_L3;
   }
 
-  /* "src/lxml/apihelpers.pxi":1526
+  /* "src/lxml/apihelpers.pxi":1521
  *         utf8_string = (<unicode>s).encode('utf8')
  *         valid = _is_valid_xml_utf8(utf8_string)
  *     elif isinstance(s, (bytes, bytearray)):             # <<<<<<<<<<<<<<
@@ -34904,19 +34831,19 @@ static PyObject *__pyx_f_4lxml_5etree__utf8(PyObject *__pyx_v_s) {
   __pyx_t_1 = (__pyx_t_3 != 0);
   if (likely(__pyx_t_1)) {
 
-    /* "src/lxml/apihelpers.pxi":1527
+    /* "src/lxml/apihelpers.pxi":1522
  *         valid = _is_valid_xml_utf8(utf8_string)
  *     elif isinstance(s, (bytes, bytearray)):
  *         utf8_string = bytes(s)             # <<<<<<<<<<<<<<
  *         valid = _is_valid_xml_ascii(utf8_string)
  *     else:
  */
-    __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyBytes_Type)), __pyx_v_s); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1527, __pyx_L1_error)
+    __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyBytes_Type)), __pyx_v_s); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1522, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_4);
     __pyx_v_utf8_string = ((PyObject*)__pyx_t_4);
     __pyx_t_4 = 0;
 
-    /* "src/lxml/apihelpers.pxi":1528
+    /* "src/lxml/apihelpers.pxi":1523
  *     elif isinstance(s, (bytes, bytearray)):
  *         utf8_string = bytes(s)
  *         valid = _is_valid_xml_ascii(utf8_string)             # <<<<<<<<<<<<<<
@@ -34925,7 +34852,7 @@ static PyObject *__pyx_f_4lxml_5etree__utf8(PyObject *__pyx_v_s) {
  */
     __pyx_v_valid = __pyx_f_4lxml_5etree__is_valid_xml_ascii(__pyx_v_utf8_string);
 
-    /* "src/lxml/apihelpers.pxi":1526
+    /* "src/lxml/apihelpers.pxi":1521
  *         utf8_string = (<unicode>s).encode('utf8')
  *         valid = _is_valid_xml_utf8(utf8_string)
  *     elif isinstance(s, (bytes, bytearray)):             # <<<<<<<<<<<<<<
@@ -34935,7 +34862,7 @@ static PyObject *__pyx_f_4lxml_5etree__utf8(PyObject *__pyx_v_s) {
     goto __pyx_L3;
   }
 
-  /* "src/lxml/apihelpers.pxi":1530
+  /* "src/lxml/apihelpers.pxi":1525
  *         valid = _is_valid_xml_ascii(utf8_string)
  *     else:
  *         raise TypeError("Argument must be bytes or unicode, got '%.200s'" % type(s).__name__)             # <<<<<<<<<<<<<<
@@ -34943,21 +34870,21 @@ static PyObject *__pyx_f_4lxml_5etree__utf8(PyObject *__pyx_v_s) {
  *         raise ValueError(
  */
   /*else*/ {
-    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(__pyx_v_s)), __pyx_n_s_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1530, __pyx_L1_error)
+    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(__pyx_v_s)), __pyx_n_s_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1525, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_4);
-    __pyx_t_5 = __Pyx_PyString_FormatSafe(__pyx_kp_s_Argument_must_be_bytes_or_unicod, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1530, __pyx_L1_error)
+    __pyx_t_5 = __Pyx_PyString_FormatSafe(__pyx_kp_s_Argument_must_be_bytes_or_unicod, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1525, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_5);
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-    __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1530, __pyx_L1_error)
+    __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1525, __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_ERR(5, 1530, __pyx_L1_error)
+    __PYX_ERR(5, 1525, __pyx_L1_error)
   }
   __pyx_L3:;
 
-  /* "src/lxml/apihelpers.pxi":1531
+  /* "src/lxml/apihelpers.pxi":1526
  *     else:
  *         raise TypeError("Argument must be bytes or unicode, got '%.200s'" % type(s).__name__)
  *     if not valid:             # <<<<<<<<<<<<<<
@@ -34967,20 +34894,20 @@ static PyObject *__pyx_f_4lxml_5etree__utf8(PyObject *__pyx_v_s) {
   __pyx_t_1 = ((!(__pyx_v_valid != 0)) != 0);
   if (unlikely(__pyx_t_1)) {
 
-    /* "src/lxml/apihelpers.pxi":1532
+    /* "src/lxml/apihelpers.pxi":1527
  *         raise TypeError("Argument must be bytes or unicode, got '%.200s'" % type(s).__name__)
  *     if not valid:
  *         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__15, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1532, __pyx_L1_error)
+    __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__15, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1527, __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_ERR(5, 1532, __pyx_L1_error)
+    __PYX_ERR(5, 1527, __pyx_L1_error)
 
-    /* "src/lxml/apihelpers.pxi":1531
+    /* "src/lxml/apihelpers.pxi":1526
  *     else:
  *         raise TypeError("Argument must be bytes or unicode, got '%.200s'" % type(s).__name__)
  *     if not valid:             # <<<<<<<<<<<<<<
@@ -34989,7 +34916,7 @@ static PyObject *__pyx_f_4lxml_5etree__utf8(PyObject *__pyx_v_s) {
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":1534
+  /* "src/lxml/apihelpers.pxi":1529
  *         raise ValueError(
  *             "All strings must be XML compatible: Unicode or ASCII, no NULL bytes or control characters")
  *     return utf8_string             # <<<<<<<<<<<<<<
@@ -35001,7 +34928,7 @@ static PyObject *__pyx_f_4lxml_5etree__utf8(PyObject *__pyx_v_s) {
   __pyx_r = __pyx_v_utf8_string;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":1513
+  /* "src/lxml/apihelpers.pxi":1508
  *     return <bytes>s[:slen]
  * 
  * cdef bytes _utf8(object s):             # <<<<<<<<<<<<<<
@@ -35022,7 +34949,7 @@ static PyObject *__pyx_f_4lxml_5etree__utf8(PyObject *__pyx_v_s) {
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":1537
+/* "src/lxml/apihelpers.pxi":1532
  * 
  * 
  * cdef bytes _utf8orNone(object s):             # <<<<<<<<<<<<<<
@@ -35038,7 +34965,7 @@ static PyObject *__pyx_f_4lxml_5etree__utf8orNone(PyObject *__pyx_v_s) {
   PyObject *__pyx_t_3 = NULL;
   __Pyx_RefNannySetupContext("_utf8orNone", 0);
 
-  /* "src/lxml/apihelpers.pxi":1538
+  /* "src/lxml/apihelpers.pxi":1533
  * 
  * cdef bytes _utf8orNone(object s):
  *     return _utf8(s) if s is not None else None             # <<<<<<<<<<<<<<
@@ -35048,7 +34975,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_ERR(5, 1538, __pyx_L1_error)
+    __pyx_t_3 = __pyx_f_4lxml_5etree__utf8(__pyx_v_s); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1533, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_3);
     __pyx_t_1 = __pyx_t_3;
     __pyx_t_3 = 0;
@@ -35060,7 +34987,7 @@ static PyObject *__pyx_f_4lxml_5etree__utf8orNone(PyObject *__pyx_v_s) {
   __pyx_t_1 = 0;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":1537
+  /* "src/lxml/apihelpers.pxi":1532
  * 
  * 
  * cdef bytes _utf8orNone(object s):             # <<<<<<<<<<<<<<
@@ -35080,7 +35007,7 @@ static PyObject *__pyx_f_4lxml_5etree__utf8orNone(PyObject *__pyx_v_s) {
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":1541
+/* "src/lxml/apihelpers.pxi":1536
  * 
  * 
  * cdef strrepr(s):             # <<<<<<<<<<<<<<
@@ -35097,7 +35024,7 @@ static PyObject *__pyx_f_4lxml_5etree_strrepr(PyObject *__pyx_v_s) {
   PyObject *__pyx_t_4 = NULL;
   __Pyx_RefNannySetupContext("strrepr", 0);
 
-  /* "src/lxml/apihelpers.pxi":1545
+  /* "src/lxml/apihelpers.pxi":1540
  *     methods, e.g. _Element.__repr__().
  *     """
  *     return s.encode('unicode-escape') if python.IS_PYTHON2 else s             # <<<<<<<<<<<<<<
@@ -35106,7 +35033,7 @@ static PyObject *__pyx_f_4lxml_5etree_strrepr(PyObject *__pyx_v_s) {
  */
   __Pyx_XDECREF(__pyx_r);
   if ((IS_PYTHON2 != 0)) {
-    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_s, __pyx_n_s_encode); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1545, __pyx_L1_error)
+    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_s, __pyx_n_s_encode); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1540, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_3);
     __pyx_t_4 = NULL;
     if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
@@ -35120,7 +35047,7 @@ static PyObject *__pyx_f_4lxml_5etree_strrepr(PyObject *__pyx_v_s) {
     }
     __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_kp_s_unicode_escape) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_kp_s_unicode_escape);
     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
-    if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1545, __pyx_L1_error)
+    if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1540, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_2);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     __pyx_t_1 = __pyx_t_2;
@@ -35133,7 +35060,7 @@ static PyObject *__pyx_f_4lxml_5etree_strrepr(PyObject *__pyx_v_s) {
   __pyx_t_1 = 0;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":1541
+  /* "src/lxml/apihelpers.pxi":1536
  * 
  * 
  * cdef strrepr(s):             # <<<<<<<<<<<<<<
@@ -35155,7 +35082,7 @@ static PyObject *__pyx_f_4lxml_5etree_strrepr(PyObject *__pyx_v_s) {
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":1555
+/* "src/lxml/apihelpers.pxi":1550
  * 
  * 
  * cdef bint _isFilePath(const_xmlChar* c_path):             # <<<<<<<<<<<<<<
@@ -35171,7 +35098,7 @@ static int __pyx_f_4lxml_5etree__isFilePath(const xmlChar *__pyx_v_c_path) {
   int __pyx_t_3;
   __Pyx_RefNannySetupContext("_isFilePath", 0);
 
-  /* "src/lxml/apihelpers.pxi":1559
+  /* "src/lxml/apihelpers.pxi":1554
  *     cdef xmlChar c
  *     # test if it looks like an absolute Unix path or a Windows network path
  *     if c_path[0] == c'/':             # <<<<<<<<<<<<<<
@@ -35181,7 +35108,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) {
 
-    /* "src/lxml/apihelpers.pxi":1560
+    /* "src/lxml/apihelpers.pxi":1555
  *     # test if it looks like an absolute Unix path or a Windows network path
  *     if c_path[0] == c'/':
  *         return ABS_UNIX_FILE_PATH             # <<<<<<<<<<<<<<
@@ -35191,7 +35118,7 @@ static int __pyx_f_4lxml_5etree__isFilePath(const xmlChar *__pyx_v_c_path) {
     __pyx_r = __pyx_e_4lxml_5etree_ABS_UNIX_FILE_PATH;
     goto __pyx_L0;
 
-    /* "src/lxml/apihelpers.pxi":1559
+    /* "src/lxml/apihelpers.pxi":1554
  *     cdef xmlChar c
  *     # test if it looks like an absolute Unix path or a Windows network path
  *     if c_path[0] == c'/':             # <<<<<<<<<<<<<<
@@ -35200,7 +35127,7 @@ static int __pyx_f_4lxml_5etree__isFilePath(const xmlChar *__pyx_v_c_path) {
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":1563
+  /* "src/lxml/apihelpers.pxi":1558
  * 
  *     # test if it looks like an absolute Windows path or URL
  *     if c'a' <= c_path[0] <= c'z' or c'A' <= c_path[0] <= c'Z':             # <<<<<<<<<<<<<<
@@ -35226,7 +35153,7 @@ static int __pyx_f_4lxml_5etree__isFilePath(const xmlChar *__pyx_v_c_path) {
   __pyx_L5_bool_binop_done:;
   if (__pyx_t_1) {
 
-    /* "src/lxml/apihelpers.pxi":1564
+    /* "src/lxml/apihelpers.pxi":1559
  *     # test if it looks like an absolute Windows path or URL
  *     if c'a' <= c_path[0] <= c'z' or c'A' <= c_path[0] <= c'Z':
  *         c_path += 1             # <<<<<<<<<<<<<<
@@ -35235,7 +35162,7 @@ static int __pyx_f_4lxml_5etree__isFilePath(const xmlChar *__pyx_v_c_path) {
  */
     __pyx_v_c_path = (__pyx_v_c_path + 1);
 
-    /* "src/lxml/apihelpers.pxi":1565
+    /* "src/lxml/apihelpers.pxi":1560
  *     if c'a' <= c_path[0] <= c'z' or c'A' <= c_path[0] <= c'Z':
  *         c_path += 1
  *         if c_path[0] == c':' and c_path[1] in b'\0\\':             # <<<<<<<<<<<<<<
@@ -35262,7 +35189,7 @@ static int __pyx_f_4lxml_5etree__isFilePath(const xmlChar *__pyx_v_c_path) {
     __pyx_L8_bool_binop_done:;
     if (__pyx_t_1) {
 
-      /* "src/lxml/apihelpers.pxi":1566
+      /* "src/lxml/apihelpers.pxi":1561
  *         c_path += 1
  *         if c_path[0] == c':' and c_path[1] in b'\0\\':
  *             return ABS_WIN_FILE_PATH  # C: or C:\...             # <<<<<<<<<<<<<<
@@ -35272,7 +35199,7 @@ static int __pyx_f_4lxml_5etree__isFilePath(const xmlChar *__pyx_v_c_path) {
       __pyx_r = __pyx_e_4lxml_5etree_ABS_WIN_FILE_PATH;
       goto __pyx_L0;
 
-      /* "src/lxml/apihelpers.pxi":1565
+      /* "src/lxml/apihelpers.pxi":1560
  *     if c'a' <= c_path[0] <= c'z' or c'A' <= c_path[0] <= c'Z':
  *         c_path += 1
  *         if c_path[0] == c':' and c_path[1] in b'\0\\':             # <<<<<<<<<<<<<<
@@ -35281,7 +35208,7 @@ static int __pyx_f_4lxml_5etree__isFilePath(const xmlChar *__pyx_v_c_path) {
  */
     }
 
-    /* "src/lxml/apihelpers.pxi":1569
+    /* "src/lxml/apihelpers.pxi":1564
  * 
  *         # test if it looks like a URL with scheme://
  *         while c'a' <= c_path[0] <= c'z' or c'A' <= c_path[0] <= c'Z':             # <<<<<<<<<<<<<<
@@ -35308,7 +35235,7 @@ static int __pyx_f_4lxml_5etree__isFilePath(const xmlChar *__pyx_v_c_path) {
       __pyx_L12_bool_binop_done:;
       if (!__pyx_t_1) break;
 
-      /* "src/lxml/apihelpers.pxi":1570
+      /* "src/lxml/apihelpers.pxi":1565
  *         # test if it looks like a URL with scheme://
  *         while c'a' <= c_path[0] <= c'z' or c'A' <= c_path[0] <= c'Z':
  *             c_path += 1             # <<<<<<<<<<<<<<
@@ -35318,7 +35245,7 @@ static int __pyx_f_4lxml_5etree__isFilePath(const xmlChar *__pyx_v_c_path) {
       __pyx_v_c_path = (__pyx_v_c_path + 1);
     }
 
-    /* "src/lxml/apihelpers.pxi":1571
+    /* "src/lxml/apihelpers.pxi":1566
  *         while c'a' <= c_path[0] <= c'z' or c'A' <= c_path[0] <= c'Z':
  *             c_path += 1
  *         if c_path[0] == c':' and c_path[1] == c'/' and c_path[2] == c'/':             # <<<<<<<<<<<<<<
@@ -35342,7 +35269,7 @@ static int __pyx_f_4lxml_5etree__isFilePath(const xmlChar *__pyx_v_c_path) {
     __pyx_L15_bool_binop_done:;
     if (__pyx_t_1) {
 
-      /* "src/lxml/apihelpers.pxi":1572
+      /* "src/lxml/apihelpers.pxi":1567
  *             c_path += 1
  *         if c_path[0] == c':' and c_path[1] == c'/' and c_path[2] == c'/':
  *             return NO_FILE_PATH             # <<<<<<<<<<<<<<
@@ -35352,7 +35279,7 @@ static int __pyx_f_4lxml_5etree__isFilePath(const xmlChar *__pyx_v_c_path) {
       __pyx_r = __pyx_e_4lxml_5etree_NO_FILE_PATH;
       goto __pyx_L0;
 
-      /* "src/lxml/apihelpers.pxi":1571
+      /* "src/lxml/apihelpers.pxi":1566
  *         while c'a' <= c_path[0] <= c'z' or c'A' <= c_path[0] <= c'Z':
  *             c_path += 1
  *         if c_path[0] == c':' and c_path[1] == c'/' and c_path[2] == c'/':             # <<<<<<<<<<<<<<
@@ -35361,7 +35288,7 @@ static int __pyx_f_4lxml_5etree__isFilePath(const xmlChar *__pyx_v_c_path) {
  */
     }
 
-    /* "src/lxml/apihelpers.pxi":1563
+    /* "src/lxml/apihelpers.pxi":1558
  * 
  *     # test if it looks like an absolute Windows path or URL
  *     if c'a' <= c_path[0] <= c'z' or c'A' <= c_path[0] <= c'Z':             # <<<<<<<<<<<<<<
@@ -35370,7 +35297,7 @@ static int __pyx_f_4lxml_5etree__isFilePath(const xmlChar *__pyx_v_c_path) {
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":1575
+  /* "src/lxml/apihelpers.pxi":1570
  * 
  *     # assume it's a relative path
  *     return REL_FILE_PATH             # <<<<<<<<<<<<<<
@@ -35380,7 +35307,7 @@ static int __pyx_f_4lxml_5etree__isFilePath(const xmlChar *__pyx_v_c_path) {
   __pyx_r = __pyx_e_4lxml_5etree_REL_FILE_PATH;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":1555
+  /* "src/lxml/apihelpers.pxi":1550
  * 
  * 
  * cdef bint _isFilePath(const_xmlChar* c_path):             # <<<<<<<<<<<<<<
@@ -35394,7 +35321,7 @@ static int __pyx_f_4lxml_5etree__isFilePath(const xmlChar *__pyx_v_c_path) {
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":1577
+/* "src/lxml/apihelpers.pxi":1572
  *     return REL_FILE_PATH
  * 
  * cdef object _encodeFilename(object filename):             # <<<<<<<<<<<<<<
@@ -35416,7 +35343,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilename(PyObject *__pyx_v_filename
   int __pyx_t_8;
   __Pyx_RefNannySetupContext("_encodeFilename", 0);
 
-  /* "src/lxml/apihelpers.pxi":1580
+  /* "src/lxml/apihelpers.pxi":1575
  *     u"""Make sure a filename is 8-bit encoded (or None).
  *     """
  *     if filename is None:             # <<<<<<<<<<<<<<
@@ -35427,7 +35354,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilename(PyObject *__pyx_v_filename
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "src/lxml/apihelpers.pxi":1581
+    /* "src/lxml/apihelpers.pxi":1576
  *     """
  *     if filename is None:
  *         return None             # <<<<<<<<<<<<<<
@@ -35438,7 +35365,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilename(PyObject *__pyx_v_filename
     __pyx_r = Py_None; __Pyx_INCREF(Py_None);
     goto __pyx_L0;
 
-    /* "src/lxml/apihelpers.pxi":1580
+    /* "src/lxml/apihelpers.pxi":1575
  *     u"""Make sure a filename is 8-bit encoded (or None).
  *     """
  *     if filename is None:             # <<<<<<<<<<<<<<
@@ -35447,7 +35374,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilename(PyObject *__pyx_v_filename
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":1582
+  /* "src/lxml/apihelpers.pxi":1577
  *     if filename is None:
  *         return None
  *     elif isinstance(filename, bytes):             # <<<<<<<<<<<<<<
@@ -35458,7 +35385,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilename(PyObject *__pyx_v_filename
   __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
-    /* "src/lxml/apihelpers.pxi":1583
+    /* "src/lxml/apihelpers.pxi":1578
  *         return None
  *     elif isinstance(filename, bytes):
  *         return filename             # <<<<<<<<<<<<<<
@@ -35470,7 +35397,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilename(PyObject *__pyx_v_filename
     __pyx_r = __pyx_v_filename;
     goto __pyx_L0;
 
-    /* "src/lxml/apihelpers.pxi":1582
+    /* "src/lxml/apihelpers.pxi":1577
  *     if filename is None:
  *         return None
  *     elif isinstance(filename, bytes):             # <<<<<<<<<<<<<<
@@ -35479,7 +35406,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilename(PyObject *__pyx_v_filename
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":1584
+  /* "src/lxml/apihelpers.pxi":1579
  *     elif isinstance(filename, bytes):
  *         return filename
  *     elif isinstance(filename, unicode):             # <<<<<<<<<<<<<<
@@ -35490,7 +35417,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilename(PyObject *__pyx_v_filename
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (likely(__pyx_t_2)) {
 
-    /* "src/lxml/apihelpers.pxi":1585
+    /* "src/lxml/apihelpers.pxi":1580
  *         return filename
  *     elif isinstance(filename, unicode):
  *         filename8 = (<unicode>filename).encode('utf8')             # <<<<<<<<<<<<<<
@@ -35499,25 +35426,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 '%.30s'", "encode");
-      __PYX_ERR(5, 1585, __pyx_L1_error)
+      __PYX_ERR(5, 1580, __pyx_L1_error)
     }
-    __pyx_t_3 = PyUnicode_AsUTF8String(((PyObject*)__pyx_v_filename)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1585, __pyx_L1_error)
+    __pyx_t_3 = PyUnicode_AsUTF8String(((PyObject*)__pyx_v_filename)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1580, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_3);
     __pyx_v_filename8 = __pyx_t_3;
     __pyx_t_3 = 0;
 
-    /* "src/lxml/apihelpers.pxi":1586
+    /* "src/lxml/apihelpers.pxi":1581
  *     elif isinstance(filename, unicode):
  *         filename8 = (<unicode>filename).encode('utf8')
  *         if _isFilePath(<unsigned char*>filename8):             # <<<<<<<<<<<<<<
  *             try:
  *                 return python.PyUnicode_AsEncodedString(
  */
-    __pyx_t_4 = __Pyx_PyObject_AsWritableUString(__pyx_v_filename8); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) __PYX_ERR(5, 1586, __pyx_L1_error)
+    __pyx_t_4 = __Pyx_PyObject_AsWritableUString(__pyx_v_filename8); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) __PYX_ERR(5, 1581, __pyx_L1_error)
     __pyx_t_2 = (__pyx_f_4lxml_5etree__isFilePath(((unsigned char *)__pyx_t_4)) != 0);
     if (__pyx_t_2) {
 
-      /* "src/lxml/apihelpers.pxi":1587
+      /* "src/lxml/apihelpers.pxi":1582
  *         filename8 = (<unicode>filename).encode('utf8')
  *         if _isFilePath(<unsigned char*>filename8):
  *             try:             # <<<<<<<<<<<<<<
@@ -35533,7 +35460,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilename(PyObject *__pyx_v_filename
         __Pyx_XGOTREF(__pyx_t_7);
         /*try:*/ {
 
-          /* "src/lxml/apihelpers.pxi":1588
+          /* "src/lxml/apihelpers.pxi":1583
  *         if _isFilePath(<unsigned char*>filename8):
  *             try:
  *                 return python.PyUnicode_AsEncodedString(             # <<<<<<<<<<<<<<
@@ -35542,20 +35469,20 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilename(PyObject *__pyx_v_filename
  */
           __Pyx_XDECREF(__pyx_r);
 
-          /* "src/lxml/apihelpers.pxi":1589
+          /* "src/lxml/apihelpers.pxi":1584
  *             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_ERR(5, 1588, __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_ERR(5, 1583, __pyx_L5_error)
           __Pyx_GOTREF(__pyx_t_3);
           __pyx_r = __pyx_t_3;
           __pyx_t_3 = 0;
           goto __pyx_L9_try_return;
 
-          /* "src/lxml/apihelpers.pxi":1587
+          /* "src/lxml/apihelpers.pxi":1582
  *         filename8 = (<unicode>filename).encode('utf8')
  *         if _isFilePath(<unsigned char*>filename8):
  *             try:             # <<<<<<<<<<<<<<
@@ -35566,7 +35493,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilename(PyObject *__pyx_v_filename
         __pyx_L5_error:;
         __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
 
-        /* "src/lxml/apihelpers.pxi":1590
+        /* "src/lxml/apihelpers.pxi":1585
  *                 return python.PyUnicode_AsEncodedString(
  *                     filename, _C_FILENAME_ENCODING, NULL)
  *             except UnicodeEncodeError:             # <<<<<<<<<<<<<<
@@ -35581,7 +35508,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilename(PyObject *__pyx_v_filename
         goto __pyx_L7_except_error;
         __pyx_L7_except_error:;
 
-        /* "src/lxml/apihelpers.pxi":1587
+        /* "src/lxml/apihelpers.pxi":1582
  *         filename8 = (<unicode>filename).encode('utf8')
  *         if _isFilePath(<unsigned char*>filename8):
  *             try:             # <<<<<<<<<<<<<<
@@ -35606,7 +35533,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilename(PyObject *__pyx_v_filename
         __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7);
       }
 
-      /* "src/lxml/apihelpers.pxi":1586
+      /* "src/lxml/apihelpers.pxi":1581
  *     elif isinstance(filename, unicode):
  *         filename8 = (<unicode>filename).encode('utf8')
  *         if _isFilePath(<unsigned char*>filename8):             # <<<<<<<<<<<<<<
@@ -35615,7 +35542,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilename(PyObject *__pyx_v_filename
  */
     }
 
-    /* "src/lxml/apihelpers.pxi":1592
+    /* "src/lxml/apihelpers.pxi":1587
  *             except UnicodeEncodeError:
  *                 pass
  *         return filename8             # <<<<<<<<<<<<<<
@@ -35627,7 +35554,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilename(PyObject *__pyx_v_filename
     __pyx_r = __pyx_v_filename8;
     goto __pyx_L0;
 
-    /* "src/lxml/apihelpers.pxi":1584
+    /* "src/lxml/apihelpers.pxi":1579
  *     elif isinstance(filename, bytes):
  *         return filename
  *     elif isinstance(filename, unicode):             # <<<<<<<<<<<<<<
@@ -35636,7 +35563,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilename(PyObject *__pyx_v_filename
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":1594
+  /* "src/lxml/apihelpers.pxi":1589
  *         return filename8
  *     else:
  *         raise TypeError("Argument must be string or unicode.")             # <<<<<<<<<<<<<<
@@ -35644,14 +35571,14 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilename(PyObject *__pyx_v_filename
  * cdef object _decodeFilename(const_xmlChar* c_path):
  */
   /*else*/ {
-    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__16, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1594, __pyx_L1_error)
+    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__16, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1589, __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_ERR(5, 1594, __pyx_L1_error)
+    __PYX_ERR(5, 1589, __pyx_L1_error)
   }
 
-  /* "src/lxml/apihelpers.pxi":1577
+  /* "src/lxml/apihelpers.pxi":1572
  *     return REL_FILE_PATH
  * 
  * cdef object _encodeFilename(object filename):             # <<<<<<<<<<<<<<
@@ -35671,7 +35598,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilename(PyObject *__pyx_v_filename
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":1596
+/* "src/lxml/apihelpers.pxi":1591
  *         raise TypeError("Argument must be string or unicode.")
  * 
  * cdef object _decodeFilename(const_xmlChar* c_path):             # <<<<<<<<<<<<<<
@@ -35685,7 +35612,7 @@ static PyObject *__pyx_f_4lxml_5etree__decodeFilename(const xmlChar *__pyx_v_c_p
   PyObject *__pyx_t_1 = NULL;
   __Pyx_RefNannySetupContext("_decodeFilename", 0);
 
-  /* "src/lxml/apihelpers.pxi":1599
+  /* "src/lxml/apihelpers.pxi":1594
  *     u"""Make the filename a unicode string if we are in Py3.
  *     """
  *     return _decodeFilenameWithLength(c_path, tree.xmlStrlen(c_path))             # <<<<<<<<<<<<<<
@@ -35693,13 +35620,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_ERR(5, 1599, __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_ERR(5, 1594, __pyx_L1_error)
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = __pyx_t_1;
   __pyx_t_1 = 0;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":1596
+  /* "src/lxml/apihelpers.pxi":1591
  *         raise TypeError("Argument must be string or unicode.")
  * 
  * cdef object _decodeFilename(const_xmlChar* c_path):             # <<<<<<<<<<<<<<
@@ -35718,7 +35645,7 @@ static PyObject *__pyx_f_4lxml_5etree__decodeFilename(const xmlChar *__pyx_v_c_p
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":1601
+/* "src/lxml/apihelpers.pxi":1596
  *     return _decodeFilenameWithLength(c_path, tree.xmlStrlen(c_path))
  * 
  * cdef object _decodeFilenameWithLength(const_xmlChar* c_path, size_t c_len):             # <<<<<<<<<<<<<<
@@ -35740,7 +35667,7 @@ static PyObject *__pyx_f_4lxml_5etree__decodeFilenameWithLength(const xmlChar *_
   PyObject *__pyx_t_9 = NULL;
   __Pyx_RefNannySetupContext("_decodeFilenameWithLength", 0);
 
-  /* "src/lxml/apihelpers.pxi":1604
+  /* "src/lxml/apihelpers.pxi":1599
  *     u"""Make the filename a unicode string if we are in Py3.
  *     """
  *     if _isFilePath(c_path):             # <<<<<<<<<<<<<<
@@ -35750,7 +35677,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) {
 
-    /* "src/lxml/apihelpers.pxi":1605
+    /* "src/lxml/apihelpers.pxi":1600
  *     """
  *     if _isFilePath(c_path):
  *         try:             # <<<<<<<<<<<<<<
@@ -35766,7 +35693,7 @@ static PyObject *__pyx_f_4lxml_5etree__decodeFilenameWithLength(const xmlChar *_
       __Pyx_XGOTREF(__pyx_t_4);
       /*try:*/ {
 
-        /* "src/lxml/apihelpers.pxi":1606
+        /* "src/lxml/apihelpers.pxi":1601
  *     if _isFilePath(c_path):
  *         try:
  *             return python.PyUnicode_Decode(             # <<<<<<<<<<<<<<
@@ -35775,20 +35702,20 @@ static PyObject *__pyx_f_4lxml_5etree__decodeFilenameWithLength(const xmlChar *_
  */
         __Pyx_XDECREF(__pyx_r);
 
-        /* "src/lxml/apihelpers.pxi":1607
+        /* "src/lxml/apihelpers.pxi":1602
  *         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_ERR(5, 1606, __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_ERR(5, 1601, __pyx_L4_error)
         __Pyx_GOTREF(__pyx_t_5);
         __pyx_r = __pyx_t_5;
         __pyx_t_5 = 0;
         goto __pyx_L8_try_return;
 
-        /* "src/lxml/apihelpers.pxi":1605
+        /* "src/lxml/apihelpers.pxi":1600
  *     """
  *     if _isFilePath(c_path):
  *         try:             # <<<<<<<<<<<<<<
@@ -35799,7 +35726,7 @@ static PyObject *__pyx_f_4lxml_5etree__decodeFilenameWithLength(const xmlChar *_
       __pyx_L4_error:;
       __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
 
-      /* "src/lxml/apihelpers.pxi":1608
+      /* "src/lxml/apihelpers.pxi":1603
  *             return python.PyUnicode_Decode(
  *                 <const_char*>c_path, c_len, _C_FILENAME_ENCODING, NULL)
  *         except UnicodeDecodeError:             # <<<<<<<<<<<<<<
@@ -35814,7 +35741,7 @@ static PyObject *__pyx_f_4lxml_5etree__decodeFilenameWithLength(const xmlChar *_
       goto __pyx_L6_except_error;
       __pyx_L6_except_error:;
 
-      /* "src/lxml/apihelpers.pxi":1605
+      /* "src/lxml/apihelpers.pxi":1600
  *     """
  *     if _isFilePath(c_path):
  *         try:             # <<<<<<<<<<<<<<
@@ -35839,7 +35766,7 @@ static PyObject *__pyx_f_4lxml_5etree__decodeFilenameWithLength(const xmlChar *_
       __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
     }
 
-    /* "src/lxml/apihelpers.pxi":1604
+    /* "src/lxml/apihelpers.pxi":1599
  *     u"""Make the filename a unicode string if we are in Py3.
  *     """
  *     if _isFilePath(c_path):             # <<<<<<<<<<<<<<
@@ -35848,7 +35775,7 @@ static PyObject *__pyx_f_4lxml_5etree__decodeFilenameWithLength(const xmlChar *_
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":1610
+  /* "src/lxml/apihelpers.pxi":1605
  *         except UnicodeDecodeError:
  *             pass
  *     try:             # <<<<<<<<<<<<<<
@@ -35864,7 +35791,7 @@ static PyObject *__pyx_f_4lxml_5etree__decodeFilenameWithLength(const xmlChar *_
     __Pyx_XGOTREF(__pyx_t_2);
     /*try:*/ {
 
-      /* "src/lxml/apihelpers.pxi":1611
+      /* "src/lxml/apihelpers.pxi":1606
  *             pass
  *     try:
  *         return (<unsigned char*>c_path)[:c_len].decode('UTF-8')             # <<<<<<<<<<<<<<
@@ -35872,13 +35799,13 @@ 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 const *)((unsigned char *)__pyx_v_c_path)), 0, __pyx_v_c_len, NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1611, __pyx_L10_error)
+      __pyx_t_5 = __Pyx_decode_c_string(((char const *)((unsigned char *)__pyx_v_c_path)), 0, __pyx_v_c_len, NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1606, __pyx_L10_error)
       __Pyx_GOTREF(__pyx_t_5);
       __pyx_r = __pyx_t_5;
       __pyx_t_5 = 0;
       goto __pyx_L14_try_return;
 
-      /* "src/lxml/apihelpers.pxi":1610
+      /* "src/lxml/apihelpers.pxi":1605
  *         except UnicodeDecodeError:
  *             pass
  *     try:             # <<<<<<<<<<<<<<
@@ -35889,7 +35816,7 @@ static PyObject *__pyx_f_4lxml_5etree__decodeFilenameWithLength(const xmlChar *_
     __pyx_L10_error:;
     __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
 
-    /* "src/lxml/apihelpers.pxi":1612
+    /* "src/lxml/apihelpers.pxi":1607
  *     try:
  *         return (<unsigned char*>c_path)[:c_len].decode('UTF-8')
  *     except UnicodeDecodeError:             # <<<<<<<<<<<<<<
@@ -35899,12 +35826,12 @@ static PyObject *__pyx_f_4lxml_5etree__decodeFilenameWithLength(const xmlChar *_
     __pyx_t_6 = __Pyx_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_ERR(5, 1612, __pyx_L12_except_error)
+      if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_7, &__pyx_t_8) < 0) __PYX_ERR(5, 1607, __pyx_L12_except_error)
       __Pyx_GOTREF(__pyx_t_5);
       __Pyx_GOTREF(__pyx_t_7);
       __Pyx_GOTREF(__pyx_t_8);
 
-      /* "src/lxml/apihelpers.pxi":1614
+      /* "src/lxml/apihelpers.pxi":1609
  *     except UnicodeDecodeError:
  *         # this is a stupid fallback, but it might still work...
  *         return (<unsigned char*>c_path)[:c_len].decode('latin-1', 'replace')             # <<<<<<<<<<<<<<
@@ -35912,7 +35839,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 const *)((unsigned char *)__pyx_v_c_path)), 0, __pyx_v_c_len, NULL, ((char const *)"replace"), PyUnicode_DecodeLatin1); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 1614, __pyx_L12_except_error)
+      __pyx_t_9 = __Pyx_decode_c_string(((char const *)((unsigned char *)__pyx_v_c_path)), 0, __pyx_v_c_len, NULL, ((char const *)"replace"), PyUnicode_DecodeLatin1); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 1609, __pyx_L12_except_error)
       __Pyx_GOTREF(__pyx_t_9);
       __pyx_r = __pyx_t_9;
       __pyx_t_9 = 0;
@@ -35924,7 +35851,7 @@ static PyObject *__pyx_f_4lxml_5etree__decodeFilenameWithLength(const xmlChar *_
     goto __pyx_L12_except_error;
     __pyx_L12_except_error:;
 
-    /* "src/lxml/apihelpers.pxi":1610
+    /* "src/lxml/apihelpers.pxi":1605
  *         except UnicodeDecodeError:
  *             pass
  *     try:             # <<<<<<<<<<<<<<
@@ -35950,7 +35877,7 @@ static PyObject *__pyx_f_4lxml_5etree__decodeFilenameWithLength(const xmlChar *_
     goto __pyx_L0;
   }
 
-  /* "src/lxml/apihelpers.pxi":1601
+  /* "src/lxml/apihelpers.pxi":1596
  *     return _decodeFilenameWithLength(c_path, tree.xmlStrlen(c_path))
  * 
  * cdef object _decodeFilenameWithLength(const_xmlChar* c_path, size_t c_len):             # <<<<<<<<<<<<<<
@@ -35972,7 +35899,7 @@ static PyObject *__pyx_f_4lxml_5etree__decodeFilenameWithLength(const xmlChar *_
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":1616
+/* "src/lxml/apihelpers.pxi":1611
  *         return (<unsigned char*>c_path)[:c_len].decode('latin-1', 'replace')
  * 
  * cdef object _encodeFilenameUTF8(object filename):             # <<<<<<<<<<<<<<
@@ -36005,7 +35932,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
   __Pyx_RefNannySetupContext("_encodeFilenameUTF8", 0);
   __Pyx_INCREF(__pyx_v_filename);
 
-  /* "src/lxml/apihelpers.pxi":1621
+  /* "src/lxml/apihelpers.pxi":1616
  *     """
  *     cdef char* c_filename
  *     if filename is None:             # <<<<<<<<<<<<<<
@@ -36016,7 +35943,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "src/lxml/apihelpers.pxi":1622
+    /* "src/lxml/apihelpers.pxi":1617
  *     cdef char* c_filename
  *     if filename is None:
  *         return None             # <<<<<<<<<<<<<<
@@ -36027,7 +35954,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
     __pyx_r = Py_None; __Pyx_INCREF(Py_None);
     goto __pyx_L0;
 
-    /* "src/lxml/apihelpers.pxi":1621
+    /* "src/lxml/apihelpers.pxi":1616
  *     """
  *     cdef char* c_filename
  *     if filename is None:             # <<<<<<<<<<<<<<
@@ -36036,7 +35963,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":1623
+  /* "src/lxml/apihelpers.pxi":1618
  *     if filename is None:
  *         return None
  *     elif isinstance(filename, bytes):             # <<<<<<<<<<<<<<
@@ -36047,7 +35974,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
   __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
-    /* "src/lxml/apihelpers.pxi":1624
+    /* "src/lxml/apihelpers.pxi":1619
  *         return None
  *     elif isinstance(filename, bytes):
  *         if not isutf8l(<bytes>filename, len(<bytes>filename)):             # <<<<<<<<<<<<<<
@@ -36056,18 +35983,18 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
  */
     if (unlikely(__pyx_v_filename == Py_None)) {
       PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found");
-      __PYX_ERR(5, 1624, __pyx_L1_error)
+      __PYX_ERR(5, 1619, __pyx_L1_error)
     }
-    __pyx_t_3 = __Pyx_PyBytes_AsUString(__pyx_v_filename); if (unlikely((!__pyx_t_3) && PyErr_Occurred())) __PYX_ERR(5, 1624, __pyx_L1_error)
+    __pyx_t_3 = __Pyx_PyBytes_AsUString(__pyx_v_filename); if (unlikely((!__pyx_t_3) && PyErr_Occurred())) __PYX_ERR(5, 1619, __pyx_L1_error)
     if (unlikely(__pyx_v_filename == Py_None)) {
       PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
-      __PYX_ERR(5, 1624, __pyx_L1_error)
+      __PYX_ERR(5, 1619, __pyx_L1_error)
     }
-    __pyx_t_4 = PyBytes_GET_SIZE(((PyObject*)__pyx_v_filename)); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(5, 1624, __pyx_L1_error)
+    __pyx_t_4 = PyBytes_GET_SIZE(((PyObject*)__pyx_v_filename)); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(5, 1619, __pyx_L1_error)
     __pyx_t_1 = ((!(__pyx_f_4lxml_5etree_isutf8l(__pyx_t_3, __pyx_t_4) != 0)) != 0);
     if (__pyx_t_1) {
 
-      /* "src/lxml/apihelpers.pxi":1626
+      /* "src/lxml/apihelpers.pxi":1621
  *         if not isutf8l(<bytes>filename, len(<bytes>filename)):
  *             # plain ASCII!
  *             return filename             # <<<<<<<<<<<<<<
@@ -36079,7 +36006,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
       __pyx_r = __pyx_v_filename;
       goto __pyx_L0;
 
-      /* "src/lxml/apihelpers.pxi":1624
+      /* "src/lxml/apihelpers.pxi":1619
  *         return None
  *     elif isinstance(filename, bytes):
  *         if not isutf8l(<bytes>filename, len(<bytes>filename)):             # <<<<<<<<<<<<<<
@@ -36088,7 +36015,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
  */
     }
 
-    /* "src/lxml/apihelpers.pxi":1627
+    /* "src/lxml/apihelpers.pxi":1622
  *             # plain ASCII!
  *             return filename
  *         c_filename = _cstr(<bytes>filename)             # <<<<<<<<<<<<<<
@@ -36097,7 +36024,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
  */
     __pyx_v_c_filename = PyBytes_AS_STRING(__pyx_v_filename);
 
-    /* "src/lxml/apihelpers.pxi":1628
+    /* "src/lxml/apihelpers.pxi":1623
  *             return filename
  *         c_filename = _cstr(<bytes>filename)
  *         try:             # <<<<<<<<<<<<<<
@@ -36113,7 +36040,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
       __Pyx_XGOTREF(__pyx_t_7);
       /*try:*/ {
 
-        /* "src/lxml/apihelpers.pxi":1631
+        /* "src/lxml/apihelpers.pxi":1626
  *             # try to decode with default encoding
  *             filename = python.PyUnicode_Decode(
  *                 c_filename, len(<bytes>filename),             # <<<<<<<<<<<<<<
@@ -36122,23 +36049,23 @@ 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_ERR(5, 1631, __pyx_L5_error)
+          __PYX_ERR(5, 1626, __pyx_L5_error)
         }
-        __pyx_t_4 = PyBytes_GET_SIZE(((PyObject*)__pyx_v_filename)); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(5, 1631, __pyx_L5_error)
+        __pyx_t_4 = PyBytes_GET_SIZE(((PyObject*)__pyx_v_filename)); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(5, 1626, __pyx_L5_error)
 
-        /* "src/lxml/apihelpers.pxi":1630
+        /* "src/lxml/apihelpers.pxi":1625
  *         try:
  *             # try to decode with default encoding
  *             filename = python.PyUnicode_Decode(             # <<<<<<<<<<<<<<
  *                 c_filename, len(<bytes>filename),
  *                 _C_FILENAME_ENCODING, NULL)
  */
-        __pyx_t_8 = PyUnicode_Decode(__pyx_v_c_filename, __pyx_t_4, __pyx_v_4lxml_5etree__C_FILENAME_ENCODING, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 1630, __pyx_L5_error)
+        __pyx_t_8 = PyUnicode_Decode(__pyx_v_c_filename, __pyx_t_4, __pyx_v_4lxml_5etree__C_FILENAME_ENCODING, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 1625, __pyx_L5_error)
         __Pyx_GOTREF(__pyx_t_8);
         __Pyx_DECREF_SET(__pyx_v_filename, __pyx_t_8);
         __pyx_t_8 = 0;
 
-        /* "src/lxml/apihelpers.pxi":1628
+        /* "src/lxml/apihelpers.pxi":1623
  *             return filename
  *         c_filename = _cstr(<bytes>filename)
  *         try:             # <<<<<<<<<<<<<<
@@ -36153,7 +36080,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
       __pyx_L5_error:;
       __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
 
-      /* "src/lxml/apihelpers.pxi":1633
+      /* "src/lxml/apihelpers.pxi":1628
  *                 c_filename, len(<bytes>filename),
  *                 _C_FILENAME_ENCODING, NULL)
  *         except UnicodeDecodeError as decode_exc:             # <<<<<<<<<<<<<<
@@ -36163,14 +36090,14 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
       __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_UnicodeDecodeError);
       if (__pyx_t_9) {
         __Pyx_AddTraceback("lxml.etree._encodeFilenameUTF8", __pyx_clineno, __pyx_lineno, __pyx_filename);
-        if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_10, &__pyx_t_11) < 0) __PYX_ERR(5, 1633, __pyx_L7_except_error)
+        if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_10, &__pyx_t_11) < 0) __PYX_ERR(5, 1628, __pyx_L7_except_error)
         __Pyx_GOTREF(__pyx_t_8);
         __Pyx_GOTREF(__pyx_t_10);
         __Pyx_GOTREF(__pyx_t_11);
         __Pyx_INCREF(__pyx_t_10);
         __pyx_v_decode_exc = __pyx_t_10;
 
-        /* "src/lxml/apihelpers.pxi":1634
+        /* "src/lxml/apihelpers.pxi":1629
  *                 _C_FILENAME_ENCODING, NULL)
  *         except UnicodeDecodeError as decode_exc:
  *             try:             # <<<<<<<<<<<<<<
@@ -36186,7 +36113,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
           __Pyx_XGOTREF(__pyx_t_14);
           /*try:*/ {
 
-            /* "src/lxml/apihelpers.pxi":1636
+            /* "src/lxml/apihelpers.pxi":1631
  *             try:
  *                 # try if it's proper UTF-8
  *                 (<bytes>filename).decode('utf8')             # <<<<<<<<<<<<<<
@@ -36195,13 +36122,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 '%.30s'", "decode");
-              __PYX_ERR(5, 1636, __pyx_L13_error)
+              __PYX_ERR(5, 1631, __pyx_L13_error)
             }
-            __pyx_t_15 = __Pyx_decode_bytes(((PyObject*)__pyx_v_filename), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_15)) __PYX_ERR(5, 1636, __pyx_L13_error)
+            __pyx_t_15 = __Pyx_decode_bytes(((PyObject*)__pyx_v_filename), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_15)) __PYX_ERR(5, 1631, __pyx_L13_error)
             __Pyx_GOTREF(__pyx_t_15);
             __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
 
-            /* "src/lxml/apihelpers.pxi":1637
+            /* "src/lxml/apihelpers.pxi":1632
  *                 # try if it's proper UTF-8
  *                 (<bytes>filename).decode('utf8')
  *                 return filename             # <<<<<<<<<<<<<<
@@ -36216,7 +36143,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
             __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
             goto __pyx_L17_try_return;
 
-            /* "src/lxml/apihelpers.pxi":1634
+            /* "src/lxml/apihelpers.pxi":1629
  *                 _C_FILENAME_ENCODING, NULL)
  *         except UnicodeDecodeError as decode_exc:
  *             try:             # <<<<<<<<<<<<<<
@@ -36227,7 +36154,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
           __pyx_L13_error:;
           __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
 
-          /* "src/lxml/apihelpers.pxi":1638
+          /* "src/lxml/apihelpers.pxi":1633
  *                 (<bytes>filename).decode('utf8')
  *                 return filename
  *             except UnicodeDecodeError:             # <<<<<<<<<<<<<<
@@ -36237,12 +36164,12 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
           __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_UnicodeDecodeError);
           if (__pyx_t_9) {
             __Pyx_AddTraceback("lxml.etree._encodeFilenameUTF8", __pyx_clineno, __pyx_lineno, __pyx_filename);
-            if (__Pyx_GetException(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17) < 0) __PYX_ERR(5, 1638, __pyx_L15_except_error)
+            if (__Pyx_GetException(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17) < 0) __PYX_ERR(5, 1633, __pyx_L15_except_error)
             __Pyx_GOTREF(__pyx_t_15);
             __Pyx_GOTREF(__pyx_t_16);
             __Pyx_GOTREF(__pyx_t_17);
 
-            /* "src/lxml/apihelpers.pxi":1639
+            /* "src/lxml/apihelpers.pxi":1634
  *                 return filename
  *             except UnicodeDecodeError:
  *                 raise decode_exc # otherwise re-raise original exception             # <<<<<<<<<<<<<<
@@ -36250,12 +36177,12 @@ 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_ERR(5, 1639, __pyx_L15_except_error)
+            __PYX_ERR(5, 1634, __pyx_L15_except_error)
           }
           goto __pyx_L15_except_error;
           __pyx_L15_except_error:;
 
-          /* "src/lxml/apihelpers.pxi":1634
+          /* "src/lxml/apihelpers.pxi":1629
  *                 _C_FILENAME_ENCODING, NULL)
  *         except UnicodeDecodeError as decode_exc:
  *             try:             # <<<<<<<<<<<<<<
@@ -36278,7 +36205,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
       goto __pyx_L7_except_error;
       __pyx_L7_except_error:;
 
-      /* "src/lxml/apihelpers.pxi":1628
+      /* "src/lxml/apihelpers.pxi":1623
  *             return filename
  *         c_filename = _cstr(<bytes>filename)
  *         try:             # <<<<<<<<<<<<<<
@@ -36299,7 +36226,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
       __pyx_L10_try_end:;
     }
 
-    /* "src/lxml/apihelpers.pxi":1623
+    /* "src/lxml/apihelpers.pxi":1618
  *     if filename is None:
  *         return None
  *     elif isinstance(filename, bytes):             # <<<<<<<<<<<<<<
@@ -36308,7 +36235,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":1640
+  /* "src/lxml/apihelpers.pxi":1635
  *             except UnicodeDecodeError:
  *                 raise decode_exc # otherwise re-raise original exception
  *     if isinstance(filename, unicode):             # <<<<<<<<<<<<<<
@@ -36319,7 +36246,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (likely(__pyx_t_2)) {
 
-    /* "src/lxml/apihelpers.pxi":1641
+    /* "src/lxml/apihelpers.pxi":1636
  *                 raise decode_exc # otherwise re-raise original exception
  *     if isinstance(filename, unicode):
  *         return (<unicode>filename).encode('utf8')             # <<<<<<<<<<<<<<
@@ -36329,15 +36256,15 @@ 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 '%.30s'", "encode");
-      __PYX_ERR(5, 1641, __pyx_L1_error)
+      __PYX_ERR(5, 1636, __pyx_L1_error)
     }
-    __pyx_t_11 = PyUnicode_AsUTF8String(((PyObject*)__pyx_v_filename)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 1641, __pyx_L1_error)
+    __pyx_t_11 = PyUnicode_AsUTF8String(((PyObject*)__pyx_v_filename)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 1636, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_11);
     __pyx_r = __pyx_t_11;
     __pyx_t_11 = 0;
     goto __pyx_L0;
 
-    /* "src/lxml/apihelpers.pxi":1640
+    /* "src/lxml/apihelpers.pxi":1635
  *             except UnicodeDecodeError:
  *                 raise decode_exc # otherwise re-raise original exception
  *     if isinstance(filename, unicode):             # <<<<<<<<<<<<<<
@@ -36346,7 +36273,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":1643
+  /* "src/lxml/apihelpers.pxi":1638
  *         return (<unicode>filename).encode('utf8')
  *     else:
  *         raise TypeError("Argument must be string or unicode.")             # <<<<<<<<<<<<<<
@@ -36354,14 +36281,14 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
  * cdef tuple _getNsTag(tag):
  */
   /*else*/ {
-    __pyx_t_11 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__16, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 1643, __pyx_L1_error)
+    __pyx_t_11 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__16, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 1638, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_11);
     __Pyx_Raise(__pyx_t_11, 0, 0, 0);
     __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
-    __PYX_ERR(5, 1643, __pyx_L1_error)
+    __PYX_ERR(5, 1638, __pyx_L1_error)
   }
 
-  /* "src/lxml/apihelpers.pxi":1616
+  /* "src/lxml/apihelpers.pxi":1611
  *         return (<unsigned char*>c_path)[:c_len].decode('latin-1', 'replace')
  * 
  * cdef object _encodeFilenameUTF8(object filename):             # <<<<<<<<<<<<<<
@@ -36387,7 +36314,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":1645
+/* "src/lxml/apihelpers.pxi":1640
  *         raise TypeError("Argument must be string or unicode.")
  * 
  * cdef tuple _getNsTag(tag):             # <<<<<<<<<<<<<<
@@ -36401,7 +36328,7 @@ static PyObject *__pyx_f_4lxml_5etree__getNsTag(PyObject *__pyx_v_tag) {
   PyObject *__pyx_t_1 = NULL;
   __Pyx_RefNannySetupContext("_getNsTag", 0);
 
-  /* "src/lxml/apihelpers.pxi":1649
+  /* "src/lxml/apihelpers.pxi":1644
  *     Return None for NS uri if no namespace URI provided.
  *     """
  *     return __getNsTag(tag, 0)             # <<<<<<<<<<<<<<
@@ -36409,13 +36336,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_ERR(5, 1649, __pyx_L1_error)
+  __pyx_t_1 = __pyx_f_4lxml_5etree___getNsTag(__pyx_v_tag, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1644, __pyx_L1_error)
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = ((PyObject*)__pyx_t_1);
   __pyx_t_1 = 0;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":1645
+  /* "src/lxml/apihelpers.pxi":1640
  *         raise TypeError("Argument must be string or unicode.")
  * 
  * cdef tuple _getNsTag(tag):             # <<<<<<<<<<<<<<
@@ -36434,7 +36361,7 @@ static PyObject *__pyx_f_4lxml_5etree__getNsTag(PyObject *__pyx_v_tag) {
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":1651
+/* "src/lxml/apihelpers.pxi":1646
  *     return __getNsTag(tag, 0)
  * 
  * cdef tuple _getNsTagWithEmptyNs(tag):             # <<<<<<<<<<<<<<
@@ -36448,7 +36375,7 @@ static PyObject *__pyx_f_4lxml_5etree__getNsTagWithEmptyNs(PyObject *__pyx_v_tag
   PyObject *__pyx_t_1 = NULL;
   __Pyx_RefNannySetupContext("_getNsTagWithEmptyNs", 0);
 
-  /* "src/lxml/apihelpers.pxi":1656
+  /* "src/lxml/apihelpers.pxi":1651
  *     part is '{}'.
  *     """
  *     return __getNsTag(tag, 1)             # <<<<<<<<<<<<<<
@@ -36456,13 +36383,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_ERR(5, 1656, __pyx_L1_error)
+  __pyx_t_1 = __pyx_f_4lxml_5etree___getNsTag(__pyx_v_tag, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1651, __pyx_L1_error)
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = ((PyObject*)__pyx_t_1);
   __pyx_t_1 = 0;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":1651
+  /* "src/lxml/apihelpers.pxi":1646
  *     return __getNsTag(tag, 0)
  * 
  * cdef tuple _getNsTagWithEmptyNs(tag):             # <<<<<<<<<<<<<<
@@ -36481,7 +36408,7 @@ static PyObject *__pyx_f_4lxml_5etree__getNsTagWithEmptyNs(PyObject *__pyx_v_tag
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":1658
+/* "src/lxml/apihelpers.pxi":1653
  *     return __getNsTag(tag, 1)
  * 
  * cdef tuple __getNsTag(tag, bint empty_ns):             # <<<<<<<<<<<<<<
@@ -36505,7 +36432,7 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
   __Pyx_RefNannySetupContext("__getNsTag", 0);
   __Pyx_INCREF(__pyx_v_tag);
 
-  /* "src/lxml/apihelpers.pxi":1663
+  /* "src/lxml/apihelpers.pxi":1658
  *     cdef Py_ssize_t taglen
  *     cdef Py_ssize_t nslen
  *     cdef bytes ns = None             # <<<<<<<<<<<<<<
@@ -36515,7 +36442,7 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
   __Pyx_INCREF(Py_None);
   __pyx_v_ns = ((PyObject*)Py_None);
 
-  /* "src/lxml/apihelpers.pxi":1665
+  /* "src/lxml/apihelpers.pxi":1660
  *     cdef bytes ns = None
  *     # _isString() is much faster than isinstance()
  *     if not _isString(tag) and isinstance(tag, QName):             # <<<<<<<<<<<<<<
@@ -36534,7 +36461,7 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
   __pyx_L4_bool_binop_done:;
   if (__pyx_t_1) {
 
-    /* "src/lxml/apihelpers.pxi":1666
+    /* "src/lxml/apihelpers.pxi":1661
  *     # _isString() is much faster than isinstance()
  *     if not _isString(tag) and isinstance(tag, QName):
  *         tag = (<QName>tag).text             # <<<<<<<<<<<<<<
@@ -36546,7 +36473,7 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
     __Pyx_DECREF_SET(__pyx_v_tag, __pyx_t_4);
     __pyx_t_4 = 0;
 
-    /* "src/lxml/apihelpers.pxi":1665
+    /* "src/lxml/apihelpers.pxi":1660
  *     cdef bytes ns = None
  *     # _isString() is much faster than isinstance()
  *     if not _isString(tag) and isinstance(tag, QName):             # <<<<<<<<<<<<<<
@@ -36555,19 +36482,19 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":1667
+  /* "src/lxml/apihelpers.pxi":1662
  *     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_ERR(5, 1667, __pyx_L1_error)
+  __pyx_t_4 = __pyx_f_4lxml_5etree__utf8(__pyx_v_tag); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1662, __pyx_L1_error)
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_DECREF_SET(__pyx_v_tag, __pyx_t_4);
   __pyx_t_4 = 0;
 
-  /* "src/lxml/apihelpers.pxi":1668
+  /* "src/lxml/apihelpers.pxi":1663
  *         tag = (<QName>tag).text
  *     tag = _utf8(tag)
  *     c_tag = _cstr(tag)             # <<<<<<<<<<<<<<
@@ -36576,7 +36503,7 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
  */
   __pyx_v_c_tag = PyBytes_AS_STRING(__pyx_v_tag);
 
-  /* "src/lxml/apihelpers.pxi":1669
+  /* "src/lxml/apihelpers.pxi":1664
  *     tag = _utf8(tag)
  *     c_tag = _cstr(tag)
  *     if c_tag[0] == c'{':             # <<<<<<<<<<<<<<
@@ -36586,7 +36513,7 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
   __pyx_t_1 = (((__pyx_v_c_tag[0]) == '{') != 0);
     if (__pyx_t_1) {
 
-      /* "src/lxml/apihelpers.pxi":1670
+      /* "src/lxml/apihelpers.pxi":1665
  *     c_tag = _cstr(tag)
  *     if c_tag[0] == c'{':
  *         c_tag += 1             # <<<<<<<<<<<<<<
@@ -36595,7 +36522,7 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
  */
       __pyx_v_c_tag = (__pyx_v_c_tag + 1);
 
-      /* "src/lxml/apihelpers.pxi":1671
+      /* "src/lxml/apihelpers.pxi":1666
  *     if c_tag[0] == c'{':
  *         c_tag += 1
  *         c_ns_end = cstring_h.strchr(c_tag, c'}')             # <<<<<<<<<<<<<<
@@ -36604,7 +36531,7 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
  */
     __pyx_v_c_ns_end = strchr(__pyx_v_c_tag, '}');
 
-    /* "src/lxml/apihelpers.pxi":1672
+    /* "src/lxml/apihelpers.pxi":1667
  *         c_tag += 1
  *         c_ns_end = cstring_h.strchr(c_tag, c'}')
  *         if c_ns_end is NULL:             # <<<<<<<<<<<<<<
@@ -36614,7 +36541,7 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
     __pyx_t_1 = ((__pyx_v_c_ns_end == NULL) != 0);
     if (unlikely(__pyx_t_1)) {
 
-      /* "src/lxml/apihelpers.pxi":1673
+      /* "src/lxml/apihelpers.pxi":1668
  *         c_ns_end = cstring_h.strchr(c_tag, c'}')
  *         if c_ns_end is NULL:
  *             raise ValueError, u"Invalid tag name"             # <<<<<<<<<<<<<<
@@ -36622,9 +36549,9 @@ 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_ERR(5, 1673, __pyx_L1_error)
+      __PYX_ERR(5, 1668, __pyx_L1_error)
 
-      /* "src/lxml/apihelpers.pxi":1672
+      /* "src/lxml/apihelpers.pxi":1667
  *         c_tag += 1
  *         c_ns_end = cstring_h.strchr(c_tag, c'}')
  *         if c_ns_end is NULL:             # <<<<<<<<<<<<<<
@@ -36633,7 +36560,7 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
  */
     }
 
-    /* "src/lxml/apihelpers.pxi":1674
+    /* "src/lxml/apihelpers.pxi":1669
  *         if c_ns_end is NULL:
  *             raise ValueError, u"Invalid tag name"
  *         nslen  = c_ns_end - c_tag             # <<<<<<<<<<<<<<
@@ -36642,7 +36569,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);
 
-    /* "src/lxml/apihelpers.pxi":1675
+    /* "src/lxml/apihelpers.pxi":1670
  *             raise ValueError, u"Invalid tag name"
  *         nslen  = c_ns_end - c_tag
  *         taglen = python.PyBytes_GET_SIZE(tag) - nslen - 2             # <<<<<<<<<<<<<<
@@ -36651,7 +36578,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);
 
-    /* "src/lxml/apihelpers.pxi":1676
+    /* "src/lxml/apihelpers.pxi":1671
  *         nslen  = c_ns_end - c_tag
  *         taglen = python.PyBytes_GET_SIZE(tag) - nslen - 2
  *         if taglen == 0:             # <<<<<<<<<<<<<<
@@ -36661,7 +36588,7 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
     __pyx_t_1 = ((__pyx_v_taglen == 0) != 0);
     if (unlikely(__pyx_t_1)) {
 
-      /* "src/lxml/apihelpers.pxi":1677
+      /* "src/lxml/apihelpers.pxi":1672
  *         taglen = python.PyBytes_GET_SIZE(tag) - nslen - 2
  *         if taglen == 0:
  *             raise ValueError, u"Empty tag name"             # <<<<<<<<<<<<<<
@@ -36669,9 +36596,9 @@ 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_ERR(5, 1677, __pyx_L1_error)
+      __PYX_ERR(5, 1672, __pyx_L1_error)
 
-      /* "src/lxml/apihelpers.pxi":1676
+      /* "src/lxml/apihelpers.pxi":1671
  *         nslen  = c_ns_end - c_tag
  *         taglen = python.PyBytes_GET_SIZE(tag) - nslen - 2
  *         if taglen == 0:             # <<<<<<<<<<<<<<
@@ -36680,7 +36607,7 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
  */
     }
 
-    /* "src/lxml/apihelpers.pxi":1678
+    /* "src/lxml/apihelpers.pxi":1673
  *         if taglen == 0:
  *             raise ValueError, u"Empty tag name"
  *         if nslen > 0:             # <<<<<<<<<<<<<<
@@ -36690,14 +36617,14 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
     __pyx_t_1 = ((__pyx_v_nslen > 0) != 0);
     if (__pyx_t_1) {
 
-      /* "src/lxml/apihelpers.pxi":1679
+      /* "src/lxml/apihelpers.pxi":1674
  *             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_ERR(5, 1679, __pyx_L1_error)
+      __pyx_t_4 = __Pyx_PyBytes_FromStringAndSize(__pyx_v_c_tag + 0, __pyx_v_nslen - 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1674, __pyx_L1_error)
       __Pyx_GOTREF(__pyx_t_4);
       __pyx_t_5 = __pyx_t_4;
       __Pyx_INCREF(__pyx_t_5);
@@ -36705,7 +36632,7 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
       __Pyx_DECREF_SET(__pyx_v_ns, ((PyObject*)__pyx_t_5));
       __pyx_t_5 = 0;
 
-      /* "src/lxml/apihelpers.pxi":1678
+      /* "src/lxml/apihelpers.pxi":1673
  *         if taglen == 0:
  *             raise ValueError, u"Empty tag name"
  *         if nslen > 0:             # <<<<<<<<<<<<<<
@@ -36715,7 +36642,7 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
       goto __pyx_L9;
     }
 
-    /* "src/lxml/apihelpers.pxi":1680
+    /* "src/lxml/apihelpers.pxi":1675
  *         if nslen > 0:
  *             ns = <bytes>c_tag[:nslen]
  *         elif empty_ns:             # <<<<<<<<<<<<<<
@@ -36725,7 +36652,7 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
     __pyx_t_1 = (__pyx_v_empty_ns != 0);
     if (__pyx_t_1) {
 
-      /* "src/lxml/apihelpers.pxi":1681
+      /* "src/lxml/apihelpers.pxi":1676
  *             ns = <bytes>c_tag[:nslen]
  *         elif empty_ns:
  *             ns = b''             # <<<<<<<<<<<<<<
@@ -36735,7 +36662,7 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
       __Pyx_INCREF(__pyx_kp_b__12);
       __Pyx_DECREF_SET(__pyx_v_ns, __pyx_kp_b__12);
 
-      /* "src/lxml/apihelpers.pxi":1680
+      /* "src/lxml/apihelpers.pxi":1675
  *         if nslen > 0:
  *             ns = <bytes>c_tag[:nslen]
  *         elif empty_ns:             # <<<<<<<<<<<<<<
@@ -36745,14 +36672,14 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
     }
     __pyx_L9:;
 
-    /* "src/lxml/apihelpers.pxi":1682
+    /* "src/lxml/apihelpers.pxi":1677
  *         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_ERR(5, 1682, __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_ERR(5, 1677, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_5);
     __pyx_t_4 = __pyx_t_5;
     __Pyx_INCREF(__pyx_t_4);
@@ -36760,7 +36687,7 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
     __Pyx_DECREF_SET(__pyx_v_tag, __pyx_t_4);
     __pyx_t_4 = 0;
 
-    /* "src/lxml/apihelpers.pxi":1669
+    /* "src/lxml/apihelpers.pxi":1664
  *     tag = _utf8(tag)
  *     c_tag = _cstr(tag)
  *     if c_tag[0] == c'{':             # <<<<<<<<<<<<<<
@@ -36770,7 +36697,7 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
     goto __pyx_L6;
   }
 
-  /* "src/lxml/apihelpers.pxi":1683
+  /* "src/lxml/apihelpers.pxi":1678
  *             ns = b''
  *         tag = <bytes>c_ns_end[1:taglen+1]
  *     elif python.PyBytes_GET_SIZE(tag) == 0:             # <<<<<<<<<<<<<<
@@ -36780,7 +36707,7 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
   __pyx_t_1 = ((PyBytes_GET_SIZE(__pyx_v_tag) == 0) != 0);
   if (unlikely(__pyx_t_1)) {
 
-    /* "src/lxml/apihelpers.pxi":1684
+    /* "src/lxml/apihelpers.pxi":1679
  *         tag = <bytes>c_ns_end[1:taglen+1]
  *     elif python.PyBytes_GET_SIZE(tag) == 0:
  *         raise ValueError, u"Empty tag name"             # <<<<<<<<<<<<<<
@@ -36788,9 +36715,9 @@ 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_ERR(5, 1684, __pyx_L1_error)
+    __PYX_ERR(5, 1679, __pyx_L1_error)
 
-    /* "src/lxml/apihelpers.pxi":1683
+    /* "src/lxml/apihelpers.pxi":1678
  *             ns = b''
  *         tag = <bytes>c_ns_end[1:taglen+1]
  *     elif python.PyBytes_GET_SIZE(tag) == 0:             # <<<<<<<<<<<<<<
@@ -36800,7 +36727,7 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
   }
   __pyx_L6:;
 
-  /* "src/lxml/apihelpers.pxi":1685
+  /* "src/lxml/apihelpers.pxi":1680
  *     elif python.PyBytes_GET_SIZE(tag) == 0:
  *         raise ValueError, u"Empty tag name"
  *     return ns, tag             # <<<<<<<<<<<<<<
@@ -36808,7 +36735,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_ERR(5, 1685, __pyx_L1_error)
+  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1680, __pyx_L1_error)
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_INCREF(__pyx_v_ns);
   __Pyx_GIVEREF(__pyx_v_ns);
@@ -36820,7 +36747,7 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
   __pyx_t_4 = 0;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":1658
+  /* "src/lxml/apihelpers.pxi":1653
  *     return __getNsTag(tag, 1)
  * 
  * cdef tuple __getNsTag(tag, bint empty_ns):             # <<<<<<<<<<<<<<
@@ -36842,7 +36769,7 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":1687
+/* "src/lxml/apihelpers.pxi":1682
  *     return ns, tag
  * 
  * cdef inline int _pyXmlNameIsValid(name_utf8):             # <<<<<<<<<<<<<<
@@ -36858,7 +36785,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__pyXmlNameIsValid(PyObject *__pyx_
   int __pyx_t_3;
   __Pyx_RefNannySetupContext("_pyXmlNameIsValid", 0);
 
-  /* "src/lxml/apihelpers.pxi":1688
+  /* "src/lxml/apihelpers.pxi":1683
  * 
  * cdef inline int _pyXmlNameIsValid(name_utf8):
  *     return _xmlNameIsValid(_xcstr(name_utf8)) and b':' not in name_utf8             # <<<<<<<<<<<<<<
@@ -36871,13 +36798,13 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__pyXmlNameIsValid(PyObject *__pyx_
     __pyx_t_1 = __pyx_t_2;
     goto __pyx_L3_bool_binop_done;
   }
-  __pyx_t_3 = (__Pyx_PySequence_ContainsTF(__pyx_kp_b__17, __pyx_v_name_utf8, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(5, 1688, __pyx_L1_error)
+  __pyx_t_3 = (__Pyx_PySequence_ContainsTF(__pyx_kp_b__17, __pyx_v_name_utf8, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(5, 1683, __pyx_L1_error)
   __pyx_t_1 = __pyx_t_3;
   __pyx_L3_bool_binop_done:;
   __pyx_r = __pyx_t_1;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":1687
+  /* "src/lxml/apihelpers.pxi":1682
  *     return ns, tag
  * 
  * cdef inline int _pyXmlNameIsValid(name_utf8):             # <<<<<<<<<<<<<<
@@ -36894,7 +36821,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__pyXmlNameIsValid(PyObject *__pyx_
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":1690
+/* "src/lxml/apihelpers.pxi":1685
  *     return _xmlNameIsValid(_xcstr(name_utf8)) and b':' not in name_utf8
  * 
  * cdef inline int _pyHtmlNameIsValid(name_utf8):             # <<<<<<<<<<<<<<
@@ -36907,7 +36834,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__pyHtmlNameIsValid(PyObject *__pyx
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("_pyHtmlNameIsValid", 0);
 
-  /* "src/lxml/apihelpers.pxi":1691
+  /* "src/lxml/apihelpers.pxi":1686
  * 
  * cdef inline int _pyHtmlNameIsValid(name_utf8):
  *     return _htmlNameIsValid(_xcstr(name_utf8))             # <<<<<<<<<<<<<<
@@ -36917,7 +36844,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;
 
-  /* "src/lxml/apihelpers.pxi":1690
+  /* "src/lxml/apihelpers.pxi":1685
  *     return _xmlNameIsValid(_xcstr(name_utf8)) and b':' not in name_utf8
  * 
  * cdef inline int _pyHtmlNameIsValid(name_utf8):             # <<<<<<<<<<<<<<
@@ -36931,7 +36858,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__pyHtmlNameIsValid(PyObject *__pyx
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":1693
+/* "src/lxml/apihelpers.pxi":1688
  *     return _htmlNameIsValid(_xcstr(name_utf8))
  * 
  * cdef inline int _xmlNameIsValid(const_xmlChar* c_name):             # <<<<<<<<<<<<<<
@@ -36944,7 +36871,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__xmlNameIsValid(const xmlChar *__p
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("_xmlNameIsValid", 0);
 
-  /* "src/lxml/apihelpers.pxi":1694
+  /* "src/lxml/apihelpers.pxi":1689
  * 
  * cdef inline int _xmlNameIsValid(const_xmlChar* c_name):
  *     return tree.xmlValidateNameValue(c_name)             # <<<<<<<<<<<<<<
@@ -36954,7 +36881,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__xmlNameIsValid(const xmlChar *__p
   __pyx_r = xmlValidateNameValue(__pyx_v_c_name);
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":1693
+  /* "src/lxml/apihelpers.pxi":1688
  *     return _htmlNameIsValid(_xcstr(name_utf8))
  * 
  * cdef inline int _xmlNameIsValid(const_xmlChar* c_name):             # <<<<<<<<<<<<<<
@@ -36968,7 +36895,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__xmlNameIsValid(const xmlChar *__p
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":1696
+/* "src/lxml/apihelpers.pxi":1691
  *     return tree.xmlValidateNameValue(c_name)
  * 
  * cdef int _htmlNameIsValid(const_xmlChar* c_name):             # <<<<<<<<<<<<<<
@@ -36983,7 +36910,7 @@ static int __pyx_f_4lxml_5etree__htmlNameIsValid(const xmlChar *__pyx_v_c_name)
   int __pyx_t_2;
   __Pyx_RefNannySetupContext("_htmlNameIsValid", 0);
 
-  /* "src/lxml/apihelpers.pxi":1697
+  /* "src/lxml/apihelpers.pxi":1692
  * 
  * cdef int _htmlNameIsValid(const_xmlChar* c_name):
  *     if c_name is NULL or c_name[0] == c'\0':             # <<<<<<<<<<<<<<
@@ -37001,7 +36928,7 @@ static int __pyx_f_4lxml_5etree__htmlNameIsValid(const xmlChar *__pyx_v_c_name)
   __pyx_L4_bool_binop_done:;
   if (__pyx_t_1) {
 
-    /* "src/lxml/apihelpers.pxi":1698
+    /* "src/lxml/apihelpers.pxi":1693
  * cdef int _htmlNameIsValid(const_xmlChar* c_name):
  *     if c_name is NULL or c_name[0] == c'\0':
  *         return 0             # <<<<<<<<<<<<<<
@@ -37011,7 +36938,7 @@ static int __pyx_f_4lxml_5etree__htmlNameIsValid(const xmlChar *__pyx_v_c_name)
     __pyx_r = 0;
     goto __pyx_L0;
 
-    /* "src/lxml/apihelpers.pxi":1697
+    /* "src/lxml/apihelpers.pxi":1692
  * 
  * cdef int _htmlNameIsValid(const_xmlChar* c_name):
  *     if c_name is NULL or c_name[0] == c'\0':             # <<<<<<<<<<<<<<
@@ -37020,7 +36947,7 @@ static int __pyx_f_4lxml_5etree__htmlNameIsValid(const xmlChar *__pyx_v_c_name)
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":1699
+  /* "src/lxml/apihelpers.pxi":1694
  *     if c_name is NULL or c_name[0] == c'\0':
  *         return 0
  *     while c_name[0] != c'\0':             # <<<<<<<<<<<<<<
@@ -37031,7 +36958,7 @@ static int __pyx_f_4lxml_5etree__htmlNameIsValid(const xmlChar *__pyx_v_c_name)
     __pyx_t_1 = (((__pyx_v_c_name[0]) != '\x00') != 0);
     if (!__pyx_t_1) break;
 
-    /* "src/lxml/apihelpers.pxi":1700
+    /* "src/lxml/apihelpers.pxi":1695
  *         return 0
  *     while c_name[0] != c'\0':
  *         if c_name[0] in b'&<>/"\'\t\n\x0B\x0C\r ':             # <<<<<<<<<<<<<<
@@ -37052,7 +36979,7 @@ static int __pyx_f_4lxml_5etree__htmlNameIsValid(const xmlChar *__pyx_v_c_name)
       case '<':
       case '>':
 
-      /* "src/lxml/apihelpers.pxi":1701
+      /* "src/lxml/apihelpers.pxi":1696
  *     while c_name[0] != c'\0':
  *         if c_name[0] in b'&<>/"\'\t\n\x0B\x0C\r ':
  *             return 0             # <<<<<<<<<<<<<<
@@ -37062,7 +36989,7 @@ static int __pyx_f_4lxml_5etree__htmlNameIsValid(const xmlChar *__pyx_v_c_name)
       __pyx_r = 0;
       goto __pyx_L0;
 
-      /* "src/lxml/apihelpers.pxi":1700
+      /* "src/lxml/apihelpers.pxi":1695
  *         return 0
  *     while c_name[0] != c'\0':
  *         if c_name[0] in b'&<>/"\'\t\n\x0B\x0C\r ':             # <<<<<<<<<<<<<<
@@ -37073,7 +37000,7 @@ static int __pyx_f_4lxml_5etree__htmlNameIsValid(const xmlChar *__pyx_v_c_name)
       default: break;
     }
 
-    /* "src/lxml/apihelpers.pxi":1702
+    /* "src/lxml/apihelpers.pxi":1697
  *         if c_name[0] in b'&<>/"\'\t\n\x0B\x0C\r ':
  *             return 0
  *         c_name += 1             # <<<<<<<<<<<<<<
@@ -37083,7 +37010,7 @@ static int __pyx_f_4lxml_5etree__htmlNameIsValid(const xmlChar *__pyx_v_c_name)
     __pyx_v_c_name = (__pyx_v_c_name + 1);
   }
 
-  /* "src/lxml/apihelpers.pxi":1703
+  /* "src/lxml/apihelpers.pxi":1698
  *             return 0
  *         c_name += 1
  *     return 1             # <<<<<<<<<<<<<<
@@ -37093,7 +37020,7 @@ static int __pyx_f_4lxml_5etree__htmlNameIsValid(const xmlChar *__pyx_v_c_name)
   __pyx_r = 1;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":1696
+  /* "src/lxml/apihelpers.pxi":1691
  *     return tree.xmlValidateNameValue(c_name)
  * 
  * cdef int _htmlNameIsValid(const_xmlChar* c_name):             # <<<<<<<<<<<<<<
@@ -37107,7 +37034,7 @@ static int __pyx_f_4lxml_5etree__htmlNameIsValid(const xmlChar *__pyx_v_c_name)
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":1705
+/* "src/lxml/apihelpers.pxi":1700
  *     return 1
  * 
  * cdef bint _characterReferenceIsValid(const_xmlChar* c_name):             # <<<<<<<<<<<<<<
@@ -37123,7 +37050,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
   int __pyx_t_2;
   __Pyx_RefNannySetupContext("_characterReferenceIsValid", 0);
 
-  /* "src/lxml/apihelpers.pxi":1707
+  /* "src/lxml/apihelpers.pxi":1702
  * cdef bint _characterReferenceIsValid(const_xmlChar* c_name):
  *     cdef bint is_hex
  *     if c_name[0] == c'x':             # <<<<<<<<<<<<<<
@@ -37133,7 +37060,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) {
 
-    /* "src/lxml/apihelpers.pxi":1708
+    /* "src/lxml/apihelpers.pxi":1703
  *     cdef bint is_hex
  *     if c_name[0] == c'x':
  *         c_name += 1             # <<<<<<<<<<<<<<
@@ -37142,7 +37069,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
  */
     __pyx_v_c_name = (__pyx_v_c_name + 1);
 
-    /* "src/lxml/apihelpers.pxi":1709
+    /* "src/lxml/apihelpers.pxi":1704
  *     if c_name[0] == c'x':
  *         c_name += 1
  *         is_hex = 1             # <<<<<<<<<<<<<<
@@ -37151,7 +37078,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
  */
     __pyx_v_is_hex = 1;
 
-    /* "src/lxml/apihelpers.pxi":1707
+    /* "src/lxml/apihelpers.pxi":1702
  * cdef bint _characterReferenceIsValid(const_xmlChar* c_name):
  *     cdef bint is_hex
  *     if c_name[0] == c'x':             # <<<<<<<<<<<<<<
@@ -37161,7 +37088,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
     goto __pyx_L3;
   }
 
-  /* "src/lxml/apihelpers.pxi":1711
+  /* "src/lxml/apihelpers.pxi":1706
  *         is_hex = 1
  *     else:
  *         is_hex = 0             # <<<<<<<<<<<<<<
@@ -37173,7 +37100,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
   }
   __pyx_L3:;
 
-  /* "src/lxml/apihelpers.pxi":1712
+  /* "src/lxml/apihelpers.pxi":1707
  *     else:
  *         is_hex = 0
  *     if c_name[0] == c'\0':             # <<<<<<<<<<<<<<
@@ -37183,7 +37110,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) {
 
-    /* "src/lxml/apihelpers.pxi":1713
+    /* "src/lxml/apihelpers.pxi":1708
  *         is_hex = 0
  *     if c_name[0] == c'\0':
  *         return 0             # <<<<<<<<<<<<<<
@@ -37193,7 +37120,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
     __pyx_r = 0;
     goto __pyx_L0;
 
-    /* "src/lxml/apihelpers.pxi":1712
+    /* "src/lxml/apihelpers.pxi":1707
  *     else:
  *         is_hex = 0
  *     if c_name[0] == c'\0':             # <<<<<<<<<<<<<<
@@ -37202,7 +37129,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":1714
+  /* "src/lxml/apihelpers.pxi":1709
  *     if c_name[0] == c'\0':
  *         return 0
  *     while c_name[0] != c'\0':             # <<<<<<<<<<<<<<
@@ -37213,7 +37140,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;
 
-    /* "src/lxml/apihelpers.pxi":1715
+    /* "src/lxml/apihelpers.pxi":1710
  *         return 0
  *     while c_name[0] != c'\0':
  *         if c_name[0] < c'0' or c_name[0] > c'9':             # <<<<<<<<<<<<<<
@@ -37231,7 +37158,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
     __pyx_L8_bool_binop_done:;
     if (__pyx_t_1) {
 
-      /* "src/lxml/apihelpers.pxi":1716
+      /* "src/lxml/apihelpers.pxi":1711
  *     while c_name[0] != c'\0':
  *         if c_name[0] < c'0' or c_name[0] > c'9':
  *             if not is_hex:             # <<<<<<<<<<<<<<
@@ -37241,7 +37168,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
       __pyx_t_1 = ((!(__pyx_v_is_hex != 0)) != 0);
       if (__pyx_t_1) {
 
-        /* "src/lxml/apihelpers.pxi":1717
+        /* "src/lxml/apihelpers.pxi":1712
  *         if c_name[0] < c'0' or c_name[0] > c'9':
  *             if not is_hex:
  *                 return 0             # <<<<<<<<<<<<<<
@@ -37251,7 +37178,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
         __pyx_r = 0;
         goto __pyx_L0;
 
-        /* "src/lxml/apihelpers.pxi":1716
+        /* "src/lxml/apihelpers.pxi":1711
  *     while c_name[0] != c'\0':
  *         if c_name[0] < c'0' or c_name[0] > c'9':
  *             if not is_hex:             # <<<<<<<<<<<<<<
@@ -37260,7 +37187,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
  */
       }
 
-      /* "src/lxml/apihelpers.pxi":1718
+      /* "src/lxml/apihelpers.pxi":1713
  *             if not is_hex:
  *                 return 0
  *             if not (c'a' <= c_name[0] <= c'f'):             # <<<<<<<<<<<<<<
@@ -37274,7 +37201,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
       __pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0);
       if (__pyx_t_2) {
 
-        /* "src/lxml/apihelpers.pxi":1719
+        /* "src/lxml/apihelpers.pxi":1714
  *                 return 0
  *             if not (c'a' <= c_name[0] <= c'f'):
  *                 if not (c'A' <= c_name[0] <= c'F'):             # <<<<<<<<<<<<<<
@@ -37288,7 +37215,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
         __pyx_t_1 = ((!(__pyx_t_2 != 0)) != 0);
         if (__pyx_t_1) {
 
-          /* "src/lxml/apihelpers.pxi":1720
+          /* "src/lxml/apihelpers.pxi":1715
  *             if not (c'a' <= c_name[0] <= c'f'):
  *                 if not (c'A' <= c_name[0] <= c'F'):
  *                     return 0             # <<<<<<<<<<<<<<
@@ -37298,7 +37225,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
           __pyx_r = 0;
           goto __pyx_L0;
 
-          /* "src/lxml/apihelpers.pxi":1719
+          /* "src/lxml/apihelpers.pxi":1714
  *                 return 0
  *             if not (c'a' <= c_name[0] <= c'f'):
  *                 if not (c'A' <= c_name[0] <= c'F'):             # <<<<<<<<<<<<<<
@@ -37307,7 +37234,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
  */
         }
 
-        /* "src/lxml/apihelpers.pxi":1718
+        /* "src/lxml/apihelpers.pxi":1713
  *             if not is_hex:
  *                 return 0
  *             if not (c'a' <= c_name[0] <= c'f'):             # <<<<<<<<<<<<<<
@@ -37316,7 +37243,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
  */
       }
 
-      /* "src/lxml/apihelpers.pxi":1715
+      /* "src/lxml/apihelpers.pxi":1710
  *         return 0
  *     while c_name[0] != c'\0':
  *         if c_name[0] < c'0' or c_name[0] > c'9':             # <<<<<<<<<<<<<<
@@ -37325,7 +37252,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
  */
     }
 
-    /* "src/lxml/apihelpers.pxi":1721
+    /* "src/lxml/apihelpers.pxi":1716
  *                 if not (c'A' <= c_name[0] <= c'F'):
  *                     return 0
  *         c_name += 1             # <<<<<<<<<<<<<<
@@ -37335,7 +37262,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
     __pyx_v_c_name = (__pyx_v_c_name + 1);
   }
 
-  /* "src/lxml/apihelpers.pxi":1722
+  /* "src/lxml/apihelpers.pxi":1717
  *                     return 0
  *         c_name += 1
  *     return 1             # <<<<<<<<<<<<<<
@@ -37345,7 +37272,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
   __pyx_r = 1;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":1705
+  /* "src/lxml/apihelpers.pxi":1700
  *     return 1
  * 
  * cdef bint _characterReferenceIsValid(const_xmlChar* c_name):             # <<<<<<<<<<<<<<
@@ -37359,7 +37286,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":1724
+/* "src/lxml/apihelpers.pxi":1719
  *     return 1
  * 
  * cdef int _tagValidOrRaise(tag_utf) except -1:             # <<<<<<<<<<<<<<
@@ -37375,7 +37302,7 @@ static int __pyx_f_4lxml_5etree__tagValidOrRaise(PyObject *__pyx_v_tag_utf) {
   PyObject *__pyx_t_3 = NULL;
   __Pyx_RefNannySetupContext("_tagValidOrRaise", 0);
 
-  /* "src/lxml/apihelpers.pxi":1725
+  /* "src/lxml/apihelpers.pxi":1720
  * 
  * cdef int _tagValidOrRaise(tag_utf) except -1:
  *     if not _pyXmlNameIsValid(tag_utf):             # <<<<<<<<<<<<<<
@@ -37385,7 +37312,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 (unlikely(__pyx_t_1)) {
 
-    /* "src/lxml/apihelpers.pxi":1726
+    /* "src/lxml/apihelpers.pxi":1721
  * cdef int _tagValidOrRaise(tag_utf) except -1:
  *     if not _pyXmlNameIsValid(tag_utf):
  *         raise ValueError(f"Invalid tag name {(<bytes>tag_utf).decode('utf8')!r}")             # <<<<<<<<<<<<<<
@@ -37394,24 +37321,24 @@ 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 '%.30s'", "decode");
-      __PYX_ERR(5, 1726, __pyx_L1_error)
+      __PYX_ERR(5, 1721, __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_ERR(5, 1726, __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_ERR(5, 1721, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_2);
-    __pyx_t_3 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_t_2), __pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1726, __pyx_L1_error)
+    __pyx_t_3 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_t_2), __pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1721, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Invalid_tag_name_2, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1726, __pyx_L1_error)
+    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Invalid_tag_name_2, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1721, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_2);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-    __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1726, __pyx_L1_error)
+    __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1721, __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_ERR(5, 1726, __pyx_L1_error)
+    __PYX_ERR(5, 1721, __pyx_L1_error)
 
-    /* "src/lxml/apihelpers.pxi":1725
+    /* "src/lxml/apihelpers.pxi":1720
  * 
  * cdef int _tagValidOrRaise(tag_utf) except -1:
  *     if not _pyXmlNameIsValid(tag_utf):             # <<<<<<<<<<<<<<
@@ -37420,7 +37347,7 @@ static int __pyx_f_4lxml_5etree__tagValidOrRaise(PyObject *__pyx_v_tag_utf) {
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":1727
+  /* "src/lxml/apihelpers.pxi":1722
  *     if not _pyXmlNameIsValid(tag_utf):
  *         raise ValueError(f"Invalid tag name {(<bytes>tag_utf).decode('utf8')!r}")
  *     return 0             # <<<<<<<<<<<<<<
@@ -37430,7 +37357,7 @@ static int __pyx_f_4lxml_5etree__tagValidOrRaise(PyObject *__pyx_v_tag_utf) {
   __pyx_r = 0;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":1724
+  /* "src/lxml/apihelpers.pxi":1719
  *     return 1
  * 
  * cdef int _tagValidOrRaise(tag_utf) except -1:             # <<<<<<<<<<<<<<
@@ -37449,7 +37376,7 @@ static int __pyx_f_4lxml_5etree__tagValidOrRaise(PyObject *__pyx_v_tag_utf) {
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":1729
+/* "src/lxml/apihelpers.pxi":1724
  *     return 0
  * 
  * cdef int _htmlTagValidOrRaise(tag_utf) except -1:             # <<<<<<<<<<<<<<
@@ -37465,7 +37392,7 @@ static int __pyx_f_4lxml_5etree__htmlTagValidOrRaise(PyObject *__pyx_v_tag_utf)
   PyObject *__pyx_t_3 = NULL;
   __Pyx_RefNannySetupContext("_htmlTagValidOrRaise", 0);
 
-  /* "src/lxml/apihelpers.pxi":1730
+  /* "src/lxml/apihelpers.pxi":1725
  * 
  * cdef int _htmlTagValidOrRaise(tag_utf) except -1:
  *     if not _pyHtmlNameIsValid(tag_utf):             # <<<<<<<<<<<<<<
@@ -37475,7 +37402,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 (unlikely(__pyx_t_1)) {
 
-    /* "src/lxml/apihelpers.pxi":1731
+    /* "src/lxml/apihelpers.pxi":1726
  * cdef int _htmlTagValidOrRaise(tag_utf) except -1:
  *     if not _pyHtmlNameIsValid(tag_utf):
  *         raise ValueError(f"Invalid HTML tag name {(<bytes>tag_utf).decode('utf8')!r}")             # <<<<<<<<<<<<<<
@@ -37484,24 +37411,24 @@ 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 '%.30s'", "decode");
-      __PYX_ERR(5, 1731, __pyx_L1_error)
+      __PYX_ERR(5, 1726, __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_ERR(5, 1731, __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_ERR(5, 1726, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_2);
-    __pyx_t_3 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_t_2), __pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1731, __pyx_L1_error)
+    __pyx_t_3 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_t_2), __pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1726, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Invalid_HTML_tag_name, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1731, __pyx_L1_error)
+    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Invalid_HTML_tag_name, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1726, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_2);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-    __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1731, __pyx_L1_error)
+    __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1726, __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_ERR(5, 1731, __pyx_L1_error)
+    __PYX_ERR(5, 1726, __pyx_L1_error)
 
-    /* "src/lxml/apihelpers.pxi":1730
+    /* "src/lxml/apihelpers.pxi":1725
  * 
  * cdef int _htmlTagValidOrRaise(tag_utf) except -1:
  *     if not _pyHtmlNameIsValid(tag_utf):             # <<<<<<<<<<<<<<
@@ -37510,7 +37437,7 @@ static int __pyx_f_4lxml_5etree__htmlTagValidOrRaise(PyObject *__pyx_v_tag_utf)
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":1732
+  /* "src/lxml/apihelpers.pxi":1727
  *     if not _pyHtmlNameIsValid(tag_utf):
  *         raise ValueError(f"Invalid HTML tag name {(<bytes>tag_utf).decode('utf8')!r}")
  *     return 0             # <<<<<<<<<<<<<<
@@ -37520,7 +37447,7 @@ static int __pyx_f_4lxml_5etree__htmlTagValidOrRaise(PyObject *__pyx_v_tag_utf)
   __pyx_r = 0;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":1729
+  /* "src/lxml/apihelpers.pxi":1724
  *     return 0
  * 
  * cdef int _htmlTagValidOrRaise(tag_utf) except -1:             # <<<<<<<<<<<<<<
@@ -37539,7 +37466,7 @@ static int __pyx_f_4lxml_5etree__htmlTagValidOrRaise(PyObject *__pyx_v_tag_utf)
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":1734
+/* "src/lxml/apihelpers.pxi":1729
  *     return 0
  * 
  * cdef int _attributeValidOrRaise(name_utf) except -1:             # <<<<<<<<<<<<<<
@@ -37555,7 +37482,7 @@ static int __pyx_f_4lxml_5etree__attributeValidOrRaise(PyObject *__pyx_v_name_ut
   PyObject *__pyx_t_3 = NULL;
   __Pyx_RefNannySetupContext("_attributeValidOrRaise", 0);
 
-  /* "src/lxml/apihelpers.pxi":1735
+  /* "src/lxml/apihelpers.pxi":1730
  * 
  * cdef int _attributeValidOrRaise(name_utf) except -1:
  *     if not _pyXmlNameIsValid(name_utf):             # <<<<<<<<<<<<<<
@@ -37565,7 +37492,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 (unlikely(__pyx_t_1)) {
 
-    /* "src/lxml/apihelpers.pxi":1736
+    /* "src/lxml/apihelpers.pxi":1731
  * cdef int _attributeValidOrRaise(name_utf) except -1:
  *     if not _pyXmlNameIsValid(name_utf):
  *         raise ValueError(f"Invalid attribute name {(<bytes>name_utf).decode('utf8')!r}")             # <<<<<<<<<<<<<<
@@ -37574,24 +37501,24 @@ 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 '%.30s'", "decode");
-      __PYX_ERR(5, 1736, __pyx_L1_error)
+      __PYX_ERR(5, 1731, __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_ERR(5, 1736, __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_ERR(5, 1731, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_2);
-    __pyx_t_3 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_t_2), __pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1736, __pyx_L1_error)
+    __pyx_t_3 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_t_2), __pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1731, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Invalid_attribute_name, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1736, __pyx_L1_error)
+    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Invalid_attribute_name, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1731, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_2);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-    __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1736, __pyx_L1_error)
+    __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1731, __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_ERR(5, 1736, __pyx_L1_error)
+    __PYX_ERR(5, 1731, __pyx_L1_error)
 
-    /* "src/lxml/apihelpers.pxi":1735
+    /* "src/lxml/apihelpers.pxi":1730
  * 
  * cdef int _attributeValidOrRaise(name_utf) except -1:
  *     if not _pyXmlNameIsValid(name_utf):             # <<<<<<<<<<<<<<
@@ -37600,7 +37527,7 @@ static int __pyx_f_4lxml_5etree__attributeValidOrRaise(PyObject *__pyx_v_name_ut
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":1737
+  /* "src/lxml/apihelpers.pxi":1732
  *     if not _pyXmlNameIsValid(name_utf):
  *         raise ValueError(f"Invalid attribute name {(<bytes>name_utf).decode('utf8')!r}")
  *     return 0             # <<<<<<<<<<<<<<
@@ -37610,7 +37537,7 @@ static int __pyx_f_4lxml_5etree__attributeValidOrRaise(PyObject *__pyx_v_name_ut
   __pyx_r = 0;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":1734
+  /* "src/lxml/apihelpers.pxi":1729
  *     return 0
  * 
  * cdef int _attributeValidOrRaise(name_utf) except -1:             # <<<<<<<<<<<<<<
@@ -37629,7 +37556,7 @@ static int __pyx_f_4lxml_5etree__attributeValidOrRaise(PyObject *__pyx_v_name_ut
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":1739
+/* "src/lxml/apihelpers.pxi":1734
  *     return 0
  * 
  * cdef int _prefixValidOrRaise(tag_utf) except -1:             # <<<<<<<<<<<<<<
@@ -37645,7 +37572,7 @@ static int __pyx_f_4lxml_5etree__prefixValidOrRaise(PyObject *__pyx_v_tag_utf) {
   PyObject *__pyx_t_3 = NULL;
   __Pyx_RefNannySetupContext("_prefixValidOrRaise", 0);
 
-  /* "src/lxml/apihelpers.pxi":1740
+  /* "src/lxml/apihelpers.pxi":1735
  * 
  * cdef int _prefixValidOrRaise(tag_utf) except -1:
  *     if not _pyXmlNameIsValid(tag_utf):             # <<<<<<<<<<<<<<
@@ -37655,7 +37582,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 (unlikely(__pyx_t_1)) {
 
-    /* "src/lxml/apihelpers.pxi":1741
+    /* "src/lxml/apihelpers.pxi":1736
  * cdef int _prefixValidOrRaise(tag_utf) except -1:
  *     if not _pyXmlNameIsValid(tag_utf):
  *         raise ValueError(f"Invalid namespace prefix {(<bytes>tag_utf).decode('utf8')!r}")             # <<<<<<<<<<<<<<
@@ -37664,24 +37591,24 @@ 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 '%.30s'", "decode");
-      __PYX_ERR(5, 1741, __pyx_L1_error)
+      __PYX_ERR(5, 1736, __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_ERR(5, 1741, __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_ERR(5, 1736, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_2);
-    __pyx_t_3 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_t_2), __pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1741, __pyx_L1_error)
+    __pyx_t_3 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_t_2), __pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1736, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Invalid_namespace_prefix, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1741, __pyx_L1_error)
+    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Invalid_namespace_prefix, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1736, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_2);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-    __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1741, __pyx_L1_error)
+    __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1736, __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_ERR(5, 1741, __pyx_L1_error)
+    __PYX_ERR(5, 1736, __pyx_L1_error)
 
-    /* "src/lxml/apihelpers.pxi":1740
+    /* "src/lxml/apihelpers.pxi":1735
  * 
  * cdef int _prefixValidOrRaise(tag_utf) except -1:
  *     if not _pyXmlNameIsValid(tag_utf):             # <<<<<<<<<<<<<<
@@ -37690,7 +37617,7 @@ static int __pyx_f_4lxml_5etree__prefixValidOrRaise(PyObject *__pyx_v_tag_utf) {
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":1742
+  /* "src/lxml/apihelpers.pxi":1737
  *     if not _pyXmlNameIsValid(tag_utf):
  *         raise ValueError(f"Invalid namespace prefix {(<bytes>tag_utf).decode('utf8')!r}")
  *     return 0             # <<<<<<<<<<<<<<
@@ -37700,7 +37627,7 @@ static int __pyx_f_4lxml_5etree__prefixValidOrRaise(PyObject *__pyx_v_tag_utf) {
   __pyx_r = 0;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":1739
+  /* "src/lxml/apihelpers.pxi":1734
  *     return 0
  * 
  * cdef int _prefixValidOrRaise(tag_utf) except -1:             # <<<<<<<<<<<<<<
@@ -37719,7 +37646,7 @@ static int __pyx_f_4lxml_5etree__prefixValidOrRaise(PyObject *__pyx_v_tag_utf) {
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":1744
+/* "src/lxml/apihelpers.pxi":1739
  *     return 0
  * 
  * cdef int _uriValidOrRaise(uri_utf) except -1:             # <<<<<<<<<<<<<<
@@ -37736,7 +37663,7 @@ static int __pyx_f_4lxml_5etree__uriValidOrRaise(PyObject *__pyx_v_uri_utf) {
   PyObject *__pyx_t_3 = NULL;
   __Pyx_RefNannySetupContext("_uriValidOrRaise", 0);
 
-  /* "src/lxml/apihelpers.pxi":1745
+  /* "src/lxml/apihelpers.pxi":1740
  * 
  * cdef int _uriValidOrRaise(uri_utf) except -1:
  *     cdef uri.xmlURI* c_uri = uri.xmlParseURI(_cstr(uri_utf))             # <<<<<<<<<<<<<<
@@ -37745,7 +37672,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));
 
-  /* "src/lxml/apihelpers.pxi":1746
+  /* "src/lxml/apihelpers.pxi":1741
  * cdef int _uriValidOrRaise(uri_utf) except -1:
  *     cdef uri.xmlURI* c_uri = uri.xmlParseURI(_cstr(uri_utf))
  *     if c_uri is NULL:             # <<<<<<<<<<<<<<
@@ -37755,7 +37682,7 @@ static int __pyx_f_4lxml_5etree__uriValidOrRaise(PyObject *__pyx_v_uri_utf) {
   __pyx_t_1 = ((__pyx_v_c_uri == NULL) != 0);
   if (unlikely(__pyx_t_1)) {
 
-    /* "src/lxml/apihelpers.pxi":1747
+    /* "src/lxml/apihelpers.pxi":1742
  *     cdef uri.xmlURI* c_uri = uri.xmlParseURI(_cstr(uri_utf))
  *     if c_uri is NULL:
  *         raise ValueError(f"Invalid namespace URI {(<bytes>uri_utf).decode('utf8')!r}")             # <<<<<<<<<<<<<<
@@ -37764,24 +37691,24 @@ 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 '%.30s'", "decode");
-      __PYX_ERR(5, 1747, __pyx_L1_error)
+      __PYX_ERR(5, 1742, __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_ERR(5, 1747, __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_ERR(5, 1742, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_2);
-    __pyx_t_3 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_t_2), __pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1747, __pyx_L1_error)
+    __pyx_t_3 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_t_2), __pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1742, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Invalid_namespace_URI, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1747, __pyx_L1_error)
+    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Invalid_namespace_URI, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1742, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_2);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-    __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1747, __pyx_L1_error)
+    __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1742, __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_ERR(5, 1747, __pyx_L1_error)
+    __PYX_ERR(5, 1742, __pyx_L1_error)
 
-    /* "src/lxml/apihelpers.pxi":1746
+    /* "src/lxml/apihelpers.pxi":1741
  * cdef int _uriValidOrRaise(uri_utf) except -1:
  *     cdef uri.xmlURI* c_uri = uri.xmlParseURI(_cstr(uri_utf))
  *     if c_uri is NULL:             # <<<<<<<<<<<<<<
@@ -37790,7 +37717,7 @@ static int __pyx_f_4lxml_5etree__uriValidOrRaise(PyObject *__pyx_v_uri_utf) {
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":1748
+  /* "src/lxml/apihelpers.pxi":1743
  *     if c_uri is NULL:
  *         raise ValueError(f"Invalid namespace URI {(<bytes>uri_utf).decode('utf8')!r}")
  *     uri.xmlFreeURI(c_uri)             # <<<<<<<<<<<<<<
@@ -37799,7 +37726,7 @@ static int __pyx_f_4lxml_5etree__uriValidOrRaise(PyObject *__pyx_v_uri_utf) {
  */
   xmlFreeURI(__pyx_v_c_uri);
 
-  /* "src/lxml/apihelpers.pxi":1749
+  /* "src/lxml/apihelpers.pxi":1744
  *         raise ValueError(f"Invalid namespace URI {(<bytes>uri_utf).decode('utf8')!r}")
  *     uri.xmlFreeURI(c_uri)
  *     return 0             # <<<<<<<<<<<<<<
@@ -37809,7 +37736,7 @@ static int __pyx_f_4lxml_5etree__uriValidOrRaise(PyObject *__pyx_v_uri_utf) {
   __pyx_r = 0;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":1744
+  /* "src/lxml/apihelpers.pxi":1739
  *     return 0
  * 
  * cdef int _uriValidOrRaise(uri_utf) except -1:             # <<<<<<<<<<<<<<
@@ -37828,7 +37755,7 @@ static int __pyx_f_4lxml_5etree__uriValidOrRaise(PyObject *__pyx_v_uri_utf) {
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":1751
+/* "src/lxml/apihelpers.pxi":1746
  *     return 0
  * 
  * cdef inline object _namespacedName(xmlNode* c_node):             # <<<<<<<<<<<<<<
@@ -37842,7 +37769,7 @@ static CYTHON_INLINE PyObject *__pyx_f_4lxml_5etree__namespacedName(xmlNode *__p
   PyObject *__pyx_t_1 = NULL;
   __Pyx_RefNannySetupContext("_namespacedName", 0);
 
-  /* "src/lxml/apihelpers.pxi":1752
+  /* "src/lxml/apihelpers.pxi":1747
  * 
  * cdef inline object _namespacedName(xmlNode* c_node):
  *     return _namespacedNameFromNsName(_getNs(c_node), c_node.name)             # <<<<<<<<<<<<<<
@@ -37850,13 +37777,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_ERR(5, 1752, __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_ERR(5, 1747, __pyx_L1_error)
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = __pyx_t_1;
   __pyx_t_1 = 0;
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":1751
+  /* "src/lxml/apihelpers.pxi":1746
  *     return 0
  * 
  * cdef inline object _namespacedName(xmlNode* c_node):             # <<<<<<<<<<<<<<
@@ -37875,7 +37802,7 @@ static CYTHON_INLINE PyObject *__pyx_f_4lxml_5etree__namespacedName(xmlNode *__p
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":1754
+/* "src/lxml/apihelpers.pxi":1749
  *     return _namespacedNameFromNsName(_getNs(c_node), c_node.name)
  * 
  * cdef object _namespacedNameFromNsName(const_xmlChar* href, const_xmlChar* name):             # <<<<<<<<<<<<<<
@@ -37894,7 +37821,7 @@ static PyObject *__pyx_f_4lxml_5etree__namespacedNameFromNsName(const xmlChar *_
   Py_ssize_t __pyx_t_5;
   __Pyx_RefNannySetupContext("_namespacedNameFromNsName", 0);
 
-  /* "src/lxml/apihelpers.pxi":1755
+  /* "src/lxml/apihelpers.pxi":1750
  * 
  * cdef object _namespacedNameFromNsName(const_xmlChar* href, const_xmlChar* name):
  *     if href is NULL:             # <<<<<<<<<<<<<<
@@ -37904,7 +37831,7 @@ static PyObject *__pyx_f_4lxml_5etree__namespacedNameFromNsName(const xmlChar *_
   __pyx_t_1 = ((__pyx_v_href == NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "src/lxml/apihelpers.pxi":1756
+    /* "src/lxml/apihelpers.pxi":1751
  * cdef object _namespacedNameFromNsName(const_xmlChar* href, const_xmlChar* name):
  *     if href is NULL:
  *         return funicode(name)             # <<<<<<<<<<<<<<
@@ -37912,13 +37839,13 @@ static PyObject *__pyx_f_4lxml_5etree__namespacedNameFromNsName(const xmlChar *_
  *         return python.PyUnicode_FromFormat("{%s}%s", href, name)
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_2 = __pyx_f_4lxml_5etree_funicode(__pyx_v_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1756, __pyx_L1_error)
+    __pyx_t_2 = __pyx_f_4lxml_5etree_funicode(__pyx_v_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1751, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_2);
     __pyx_r = __pyx_t_2;
     __pyx_t_2 = 0;
     goto __pyx_L0;
 
-    /* "src/lxml/apihelpers.pxi":1755
+    /* "src/lxml/apihelpers.pxi":1750
  * 
  * cdef object _namespacedNameFromNsName(const_xmlChar* href, const_xmlChar* name):
  *     if href is NULL:             # <<<<<<<<<<<<<<
@@ -37927,7 +37854,7 @@ static PyObject *__pyx_f_4lxml_5etree__namespacedNameFromNsName(const xmlChar *_
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":1757
+  /* "src/lxml/apihelpers.pxi":1752
  *     if href is NULL:
  *         return funicode(name)
  *     elif not python.IS_PYPY and (python.LXML_UNICODE_STRINGS or isutf8(name) or isutf8(href)):             # <<<<<<<<<<<<<<
@@ -37957,7 +37884,7 @@ static PyObject *__pyx_f_4lxml_5etree__namespacedNameFromNsName(const xmlChar *_
   __pyx_L4_bool_binop_done:;
   if (__pyx_t_1) {
 
-    /* "src/lxml/apihelpers.pxi":1758
+    /* "src/lxml/apihelpers.pxi":1753
  *         return funicode(name)
  *     elif not python.IS_PYPY and (python.LXML_UNICODE_STRINGS or isutf8(name) or isutf8(href)):
  *         return python.PyUnicode_FromFormat("{%s}%s", href, name)             # <<<<<<<<<<<<<<
@@ -37965,13 +37892,13 @@ 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(((char *)"{%s}%s"), __pyx_v_href, __pyx_v_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1758, __pyx_L1_error)
+    __pyx_t_2 = PyUnicode_FromFormat(((char *)"{%s}%s"), __pyx_v_href, __pyx_v_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1753, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_2);
     __pyx_r = __pyx_t_2;
     __pyx_t_2 = 0;
     goto __pyx_L0;
 
-    /* "src/lxml/apihelpers.pxi":1757
+    /* "src/lxml/apihelpers.pxi":1752
  *     if href is NULL:
  *         return funicode(name)
  *     elif not python.IS_PYPY and (python.LXML_UNICODE_STRINGS or isutf8(name) or isutf8(href)):             # <<<<<<<<<<<<<<
@@ -37980,7 +37907,7 @@ static PyObject *__pyx_f_4lxml_5etree__namespacedNameFromNsName(const xmlChar *_
  */
   }
 
-  /* "src/lxml/apihelpers.pxi":1760
+  /* "src/lxml/apihelpers.pxi":1755
  *         return python.PyUnicode_FromFormat("{%s}%s", href, name)
  *     else:
  *         s = python.PyBytes_FromFormat("{%s}%s", href, name)             # <<<<<<<<<<<<<<
@@ -37988,12 +37915,12 @@ static PyObject *__pyx_f_4lxml_5etree__namespacedNameFromNsName(const xmlChar *_
  *             return (<bytes>s).decode('utf8')
  */
   /*else*/ {
-    __pyx_t_2 = PyBytes_FromFormat(((char *)"{%s}%s"), __pyx_v_href, __pyx_v_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1760, __pyx_L1_error)
+    __pyx_t_2 = PyBytes_FromFormat(((char *)"{%s}%s"), __pyx_v_href, __pyx_v_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1755, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_2);
     __pyx_v_s = ((PyObject*)__pyx_t_2);
     __pyx_t_2 = 0;
 
-    /* "src/lxml/apihelpers.pxi":1761
+    /* "src/lxml/apihelpers.pxi":1756
  *     else:
  *         s = python.PyBytes_FromFormat("{%s}%s", href, name)
  *         if python.IS_PYPY and (python.LXML_UNICODE_STRINGS or isutf8l(s, len(s))):             # <<<<<<<<<<<<<<
@@ -38014,20 +37941,20 @@ static PyObject *__pyx_f_4lxml_5etree__namespacedNameFromNsName(const xmlChar *_
     }
     if (unlikely(__pyx_v_s == Py_None)) {
       PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found");
-      __PYX_ERR(5, 1761, __pyx_L1_error)
+      __PYX_ERR(5, 1756, __pyx_L1_error)
     }
-    __pyx_t_4 = __Pyx_PyBytes_AsUString(__pyx_v_s); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) __PYX_ERR(5, 1761, __pyx_L1_error)
+    __pyx_t_4 = __Pyx_PyBytes_AsUString(__pyx_v_s); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) __PYX_ERR(5, 1756, __pyx_L1_error)
     if (unlikely(__pyx_v_s == Py_None)) {
       PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
-      __PYX_ERR(5, 1761, __pyx_L1_error)
+      __PYX_ERR(5, 1756, __pyx_L1_error)
     }
-    __pyx_t_5 = PyBytes_GET_SIZE(__pyx_v_s); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(5, 1761, __pyx_L1_error)
+    __pyx_t_5 = PyBytes_GET_SIZE(__pyx_v_s); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(5, 1756, __pyx_L1_error)
     __pyx_t_3 = (__pyx_f_4lxml_5etree_isutf8l(__pyx_t_4, __pyx_t_5) != 0);
     __pyx_t_1 = __pyx_t_3;
     __pyx_L9_bool_binop_done:;
     if (__pyx_t_1) {
 
-      /* "src/lxml/apihelpers.pxi":1762
+      /* "src/lxml/apihelpers.pxi":1757
  *         s = python.PyBytes_FromFormat("{%s}%s", href, name)
  *         if python.IS_PYPY and (python.LXML_UNICODE_STRINGS or isutf8l(s, len(s))):
  *             return (<bytes>s).decode('utf8')             # <<<<<<<<<<<<<<
@@ -38037,15 +37964,15 @@ 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 '%.30s'", "decode");
-        __PYX_ERR(5, 1762, __pyx_L1_error)
+        __PYX_ERR(5, 1757, __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_ERR(5, 1762, __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_ERR(5, 1757, __pyx_L1_error)
       __Pyx_GOTREF(__pyx_t_2);
       __pyx_r = __pyx_t_2;
       __pyx_t_2 = 0;
       goto __pyx_L0;
 
-      /* "src/lxml/apihelpers.pxi":1761
+      /* "src/lxml/apihelpers.pxi":1756
  *     else:
  *         s = python.PyBytes_FromFormat("{%s}%s", href, name)
  *         if python.IS_PYPY and (python.LXML_UNICODE_STRINGS or isutf8l(s, len(s))):             # <<<<<<<<<<<<<<
@@ -38054,7 +37981,7 @@ static PyObject *__pyx_f_4lxml_5etree__namespacedNameFromNsName(const xmlChar *_
  */
     }
 
-    /* "src/lxml/apihelpers.pxi":1764
+    /* "src/lxml/apihelpers.pxi":1759
  *             return (<bytes>s).decode('utf8')
  *         else:
  *             return s             # <<<<<<<<<<<<<<
@@ -38069,7 +37996,7 @@ static PyObject *__pyx_f_4lxml_5etree__namespacedNameFromNsName(const xmlChar *_
     }
   }
 
-  /* "src/lxml/apihelpers.pxi":1754
+  /* "src/lxml/apihelpers.pxi":1749
  *     return _namespacedNameFromNsName(_getNs(c_node), c_node.name)
  * 
  * cdef object _namespacedNameFromNsName(const_xmlChar* href, const_xmlChar* name):             # <<<<<<<<<<<<<<
@@ -38089,7 +38016,7 @@ static PyObject *__pyx_f_4lxml_5etree__namespacedNameFromNsName(const xmlChar *_
   return __pyx_r;
 }
 
-/* "src/lxml/apihelpers.pxi":1766
+/* "src/lxml/apihelpers.pxi":1761
  *             return s
  * 
  * cdef _getFilenameForFile(source):             # <<<<<<<<<<<<<<
@@ -38110,7 +38037,7 @@ static PyObject *__pyx_f_4lxml_5etree__getFilenameForFile(PyObject *__pyx_v_sour
   int __pyx_t_7;
   __Pyx_RefNannySetupContext("_getFilenameForFile", 0);
 
-  /* "src/lxml/apihelpers.pxi":1772
+  /* "src/lxml/apihelpers.pxi":1767
  *     """
  *     # urllib2 provides a geturl() method
  *     try:             # <<<<<<<<<<<<<<
@@ -38126,7 +38053,7 @@ static PyObject *__pyx_f_4lxml_5etree__getFilenameForFile(PyObject *__pyx_v_sour
     __Pyx_XGOTREF(__pyx_t_3);
     /*try:*/ {
 
-      /* "src/lxml/apihelpers.pxi":1773
+      /* "src/lxml/apihelpers.pxi":1768
  *     # urllib2 provides a geturl() method
  *     try:
  *         return source.geturl()             # <<<<<<<<<<<<<<
@@ -38134,7 +38061,7 @@ static PyObject *__pyx_f_4lxml_5etree__getFilenameForFile(PyObject *__pyx_v_sour
  *         pass
  */
       __Pyx_XDECREF(__pyx_r);
-      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_source, __pyx_n_s_geturl); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1773, __pyx_L3_error)
+      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_source, __pyx_n_s_geturl); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1768, __pyx_L3_error)
       __Pyx_GOTREF(__pyx_t_5);
       __pyx_t_6 = NULL;
       if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
@@ -38148,14 +38075,14 @@ static PyObject *__pyx_f_4lxml_5etree__getFilenameForFile(PyObject *__pyx_v_sour
       }
       __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_5);
       __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
-      if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1773, __pyx_L3_error)
+      if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1768, __pyx_L3_error)
       __Pyx_GOTREF(__pyx_t_4);
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
       __pyx_r = __pyx_t_4;
       __pyx_t_4 = 0;
       goto __pyx_L7_try_return;
 
-      /* "src/lxml/apihelpers.pxi":1772
+      /* "src/lxml/apihelpers.pxi":1767
  *     """
  *     # urllib2 provides a geturl() method
  *     try:             # <<<<<<<<<<<<<<
@@ -38168,7 +38095,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_6); __pyx_t_6 = 0;
 
-    /* "src/lxml/apihelpers.pxi":1774
+    /* "src/lxml/apihelpers.pxi":1769
  *     try:
  *         return source.geturl()
  *     except:             # <<<<<<<<<<<<<<
@@ -38181,7 +38108,7 @@ static PyObject *__pyx_f_4lxml_5etree__getFilenameForFile(PyObject *__pyx_v_sour
     }
     __pyx_L7_try_return:;
 
-    /* "src/lxml/apihelpers.pxi":1772
+    /* "src/lxml/apihelpers.pxi":1767
  *     """
  *     # urllib2 provides a geturl() method
  *     try:             # <<<<<<<<<<<<<<
@@ -38200,7 +38127,7 @@ static PyObject *__pyx_f_4lxml_5etree__getFilenameForFile(PyObject *__pyx_v_sour
     __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
   }
 
-  /* "src/lxml/apihelpers.pxi":1777
+  /* "src/lxml/apihelpers.pxi":1772
  *         pass
  *     # file instances have a name attribute
  *     try:             # <<<<<<<<<<<<<<
@@ -38216,19 +38143,19 @@ static PyObject *__pyx_f_4lxml_5etree__getFilenameForFile(PyObject *__pyx_v_sour
     __Pyx_XGOTREF(__pyx_t_1);
     /*try:*/ {
 
-      /* "src/lxml/apihelpers.pxi":1778
+      /* "src/lxml/apihelpers.pxi":1773
  *     # file instances have a name attribute
  *     try:
  *         filename = source.name             # <<<<<<<<<<<<<<
  *         if _isString(filename):
  *             return os_path_abspath(filename)
  */
-      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_source, __pyx_n_s_name_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1778, __pyx_L9_error)
+      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_source, __pyx_n_s_name_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1773, __pyx_L9_error)
       __Pyx_GOTREF(__pyx_t_4);
       __pyx_v_filename = __pyx_t_4;
       __pyx_t_4 = 0;
 
-      /* "src/lxml/apihelpers.pxi":1779
+      /* "src/lxml/apihelpers.pxi":1774
  *     try:
  *         filename = source.name
  *         if _isString(filename):             # <<<<<<<<<<<<<<
@@ -38238,7 +38165,7 @@ static PyObject *__pyx_f_4lxml_5etree__getFilenameForFile(PyObject *__pyx_v_sour
       __pyx_t_7 = (_isString(__pyx_v_filename) != 0);
       if (__pyx_t_7) {
 
-        /* "src/lxml/apihelpers.pxi":1780
+        /* "src/lxml/apihelpers.pxi":1775
  *         filename = source.name
  *         if _isString(filename):
  *             return os_path_abspath(filename)             # <<<<<<<<<<<<<<
@@ -38259,14 +38186,14 @@ static PyObject *__pyx_f_4lxml_5etree__getFilenameForFile(PyObject *__pyx_v_sour
         }
         __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_v_filename) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_filename);
         __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
-        if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1780, __pyx_L9_error)
+        if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1775, __pyx_L9_error)
         __Pyx_GOTREF(__pyx_t_4);
         __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
         __pyx_r = __pyx_t_4;
         __pyx_t_4 = 0;
         goto __pyx_L13_try_return;
 
-        /* "src/lxml/apihelpers.pxi":1779
+        /* "src/lxml/apihelpers.pxi":1774
  *     try:
  *         filename = source.name
  *         if _isString(filename):             # <<<<<<<<<<<<<<
@@ -38275,7 +38202,7 @@ static PyObject *__pyx_f_4lxml_5etree__getFilenameForFile(PyObject *__pyx_v_sour
  */
       }
 
-      /* "src/lxml/apihelpers.pxi":1777
+      /* "src/lxml/apihelpers.pxi":1772
  *         pass
  *     # file instances have a name attribute
  *     try:             # <<<<<<<<<<<<<<
@@ -38292,7 +38219,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_6); __pyx_t_6 = 0;
 
-    /* "src/lxml/apihelpers.pxi":1781
+    /* "src/lxml/apihelpers.pxi":1776
  *         if _isString(filename):
  *             return os_path_abspath(filename)
  *     except:             # <<<<<<<<<<<<<<
@@ -38305,7 +38232,7 @@ static PyObject *__pyx_f_4lxml_5etree__getFilenameForFile(PyObject *__pyx_v_sour
     }
     __pyx_L13_try_return:;
 
-    /* "src/lxml/apihelpers.pxi":1777
+    /* "src/lxml/apihelpers.pxi":1772
  *         pass
  *     # file instances have a name attribute
  *     try:             # <<<<<<<<<<<<<<
@@ -38325,7 +38252,7 @@ static PyObject *__pyx_f_4lxml_5etree__getFilenameForFile(PyObject *__pyx_v_sour
     __pyx_L14_try_end:;
   }
 
-  /* "src/lxml/apihelpers.pxi":1784
+  /* "src/lxml/apihelpers.pxi":1779
  *         pass
  *     # gzip file instances have a filename attribute (before Py3k)
  *     try:             # <<<<<<<<<<<<<<
@@ -38341,19 +38268,19 @@ static PyObject *__pyx_f_4lxml_5etree__getFilenameForFile(PyObject *__pyx_v_sour
     __Pyx_XGOTREF(__pyx_t_3);
     /*try:*/ {
 
-      /* "src/lxml/apihelpers.pxi":1785
+      /* "src/lxml/apihelpers.pxi":1780
  *     # 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_ERR(5, 1785, __pyx_L16_error)
+      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_source, __pyx_n_s_filename); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1780, __pyx_L16_error)
       __Pyx_GOTREF(__pyx_t_4);
       __Pyx_XDECREF_SET(__pyx_v_filename, __pyx_t_4);
       __pyx_t_4 = 0;
 
-      /* "src/lxml/apihelpers.pxi":1786
+      /* "src/lxml/apihelpers.pxi":1781
  *     try:
  *         filename = source.filename
  *         if _isString(filename):             # <<<<<<<<<<<<<<
@@ -38363,7 +38290,7 @@ static PyObject *__pyx_f_4lxml_5etree__getFilenameForFile(PyObject *__pyx_v_sour
       __pyx_t_7 = (_isString(__pyx_v_filename) != 0);
       if (__pyx_t_7) {
 
-        /* "src/lxml/apihelpers.pxi":1787
+        /* "src/lxml/apihelpers.pxi":1782
  *         filename = source.filename
  *         if _isString(filename):
  *             return os_path_abspath(filename)             # <<<<<<<<<<<<<<
@@ -38384,14 +38311,14 @@ static PyObject *__pyx_f_4lxml_5etree__getFilenameForFile(PyObject *__pyx_v_sour
         }
         __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_v_filename) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_filename);
         __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
-        if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1787, __pyx_L16_error)
+        if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1782, __pyx_L16_error)
         __Pyx_GOTREF(__pyx_t_4);
         __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
         __pyx_r = __pyx_t_4;
         __pyx_t_4 = 0;
         goto __pyx_L20_try_return;
 
-        /* "src/lxml/apihelpers.pxi":1786
+        /* "src/lxml/apihelpers.pxi":1781
  *     try:
  *         filename = source.filename
  *         if _isString(filename):             # <<<<<<<<<<<<<<
@@ -38400,7 +38327,7 @@ static PyObject *__pyx_f_4lxml_5etree__getFilenameForFile(PyObject *__pyx_v_sour
  */
       }
 
-      /* "src/lxml/apihelpers.pxi":1784
+      /* "src/lxml/apihelpers.pxi":1779
  *         pass
  *     # gzip file instances have a filename attribute (before Py3k)
  *     try:             # <<<<<<<<<<<<<<
@@ -38417,7 +38344,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_6); __pyx_t_6 = 0;
 
-    /* "src/lxml/apihelpers.pxi":1788
+    /* "src/lxml/apihelpers.pxi":1783
  *         if _isString(filename):
  *             return os_path_abspath(filename)
  *     except:             # <<<<<<<<<<<<<<
@@ -38430,7 +38357,7 @@ static PyObject *__pyx_f_4lxml_5etree__getFilenameForFile(PyObject *__pyx_v_sour
     }
     __pyx_L20_try_return:;
 
-    /* "src/lxml/apihelpers.pxi":1784
+    /* "src/lxml/apihelpers.pxi":1779
  *         pass
  *     # gzip file instances have a filename attribute (before Py3k)
  *     try:             # <<<<<<<<<<<<<<
@@ -38450,7 +38377,7 @@ static PyObject *__pyx_f_4lxml_5etree__getFilenameForFile(PyObject *__pyx_v_sour
     __pyx_L21_try_end:;
   }
 
-  /* "src/lxml/apihelpers.pxi":1791
+  /* "src/lxml/apihelpers.pxi":1786
  *         pass
  *     # can't determine filename
  *     return None             # <<<<<<<<<<<<<<
@@ -38459,7 +38386,7 @@ static PyObject *__pyx_f_4lxml_5etree__getFilenameForFile(PyObject *__pyx_v_sour
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
 
-  /* "src/lxml/apihelpers.pxi":1766
+  /* "src/lxml/apihelpers.pxi":1761
  *             return s
  * 
  * cdef _getFilenameForFile(source):             # <<<<<<<<<<<<<<
@@ -239839,14 +239766,14 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) {
   __pyx_builtin_MemoryError = __Pyx_GetBuiltinName(__pyx_n_s_MemoryError); if (!__pyx_builtin_MemoryError) __PYX_ERR(4, 234, __pyx_L1_error)
   __pyx_builtin_id = __Pyx_GetBuiltinName(__pyx_n_s_id); if (!__pyx_builtin_id) __PYX_ERR(5, 19, __pyx_L1_error)
   __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(5, 41, __pyx_L1_error)
-  __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(5, 413, __pyx_L1_error)
+  __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(5, 408, __pyx_L1_error)
   #if PY_MAJOR_VERSION >= 3
-  __pyx_builtin_xrange = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_xrange) __PYX_ERR(5, 1033, __pyx_L1_error)
+  __pyx_builtin_xrange = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_xrange) __PYX_ERR(5, 1028, __pyx_L1_error)
   #else
-  __pyx_builtin_xrange = __Pyx_GetBuiltinName(__pyx_n_s_xrange); if (!__pyx_builtin_xrange) __PYX_ERR(5, 1033, __pyx_L1_error)
+  __pyx_builtin_xrange = __Pyx_GetBuiltinName(__pyx_n_s_xrange); if (!__pyx_builtin_xrange) __PYX_ERR(5, 1028, __pyx_L1_error)
   #endif
-  __pyx_builtin_UnicodeEncodeError = __Pyx_GetBuiltinName(__pyx_n_s_UnicodeEncodeError); if (!__pyx_builtin_UnicodeEncodeError) __PYX_ERR(5, 1590, __pyx_L1_error)
-  __pyx_builtin_UnicodeDecodeError = __Pyx_GetBuiltinName(__pyx_n_s_UnicodeDecodeError); if (!__pyx_builtin_UnicodeDecodeError) __PYX_ERR(5, 1608, __pyx_L1_error)
+  __pyx_builtin_UnicodeEncodeError = __Pyx_GetBuiltinName(__pyx_n_s_UnicodeEncodeError); if (!__pyx_builtin_UnicodeEncodeError) __PYX_ERR(5, 1585, __pyx_L1_error)
+  __pyx_builtin_UnicodeDecodeError = __Pyx_GetBuiltinName(__pyx_n_s_UnicodeDecodeError); if (!__pyx_builtin_UnicodeDecodeError) __PYX_ERR(5, 1603, __pyx_L1_error)
   __pyx_builtin_enumerate = __Pyx_GetBuiltinName(__pyx_n_s_enumerate); if (!__pyx_builtin_enumerate) __PYX_ERR(1, 315, __pyx_L1_error)
   __pyx_builtin_IndexError = __Pyx_GetBuiltinName(__pyx_n_s_IndexError); if (!__pyx_builtin_IndexError) __PYX_ERR(0, 745, __pyx_L1_error)
   __pyx_builtin_FutureWarning = __Pyx_GetBuiltinName(__pyx_n_s_FutureWarning); if (!__pyx_builtin_FutureWarning) __PYX_ERR(0, 1177, __pyx_L1_error)
@@ -239950,47 +239877,47 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) {
   __Pyx_GOTREF(__pyx_tuple__10);
   __Pyx_GIVEREF(__pyx_tuple__10);
 
-  /* "src/lxml/apihelpers.pxi":1333
+  /* "src/lxml/apihelpers.pxi":1328
  *     # 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__13 = PyTuple_Pack(1, __pyx_kp_s_cannot_append_parent_to_itself); if (unlikely(!__pyx_tuple__13)) __PYX_ERR(5, 1333, __pyx_L1_error)
+  __pyx_tuple__13 = PyTuple_Pack(1, __pyx_kp_s_cannot_append_parent_to_itself); if (unlikely(!__pyx_tuple__13)) __PYX_ERR(5, 1328, __pyx_L1_error)
   __Pyx_GOTREF(__pyx_tuple__13);
   __Pyx_GIVEREF(__pyx_tuple__13);
 
-  /* "src/lxml/apihelpers.pxi":1387
+  /* "src/lxml/apihelpers.pxi":1382
  *         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__14 = PyTuple_Pack(1, __pyx_kp_s_cannot_add_ancestor_as_sibling_p); if (unlikely(!__pyx_tuple__14)) __PYX_ERR(5, 1387, __pyx_L1_error)
+  __pyx_tuple__14 = PyTuple_Pack(1, __pyx_kp_s_cannot_add_ancestor_as_sibling_p); if (unlikely(!__pyx_tuple__14)) __PYX_ERR(5, 1382, __pyx_L1_error)
   __Pyx_GOTREF(__pyx_tuple__14);
   __Pyx_GIVEREF(__pyx_tuple__14);
 
-  /* "src/lxml/apihelpers.pxi":1532
+  /* "src/lxml/apihelpers.pxi":1527
  *         raise TypeError("Argument must be bytes or unicode, got '%.200s'" % type(s).__name__)
  *     if not valid:
  *         raise ValueError(             # <<<<<<<<<<<<<<
  *             "All strings must be XML compatible: Unicode or ASCII, no NULL bytes or control characters")
  *     return utf8_string
  */
-  __pyx_tuple__15 = PyTuple_Pack(1, __pyx_kp_s_All_strings_must_be_XML_compatib); if (unlikely(!__pyx_tuple__15)) __PYX_ERR(5, 1532, __pyx_L1_error)
+  __pyx_tuple__15 = PyTuple_Pack(1, __pyx_kp_s_All_strings_must_be_XML_compatib); if (unlikely(!__pyx_tuple__15)) __PYX_ERR(5, 1527, __pyx_L1_error)
   __Pyx_GOTREF(__pyx_tuple__15);
   __Pyx_GIVEREF(__pyx_tuple__15);
 
-  /* "src/lxml/apihelpers.pxi":1594
+  /* "src/lxml/apihelpers.pxi":1589
  *         return filename8
  *     else:
  *         raise TypeError("Argument must be string or unicode.")             # <<<<<<<<<<<<<<
  * 
  * cdef object _decodeFilename(const_xmlChar* c_path):
  */
-  __pyx_tuple__16 = PyTuple_Pack(1, __pyx_kp_s_Argument_must_be_string_or_unico); if (unlikely(!__pyx_tuple__16)) __PYX_ERR(5, 1594, __pyx_L1_error)
+  __pyx_tuple__16 = PyTuple_Pack(1, __pyx_kp_s_Argument_must_be_string_or_unico); if (unlikely(!__pyx_tuple__16)) __PYX_ERR(5, 1589, __pyx_L1_error)
   __Pyx_GOTREF(__pyx_tuple__16);
   __Pyx_GIVEREF(__pyx_tuple__16);
 
@@ -247827,34 +247754,34 @@ if (!__Pyx_RefNanny) {
   if (PyDict_SetItem(__pyx_d, __pyx_n_s_version_2, __pyx_t_1) < 0) __PYX_ERR(0, 266, __pyx_L1_error)
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "src/lxml/apihelpers.pxi":654
+  /* "src/lxml/apihelpers.pxi":649
  *     return attributes
  * 
  * cdef object __RE_XML_ENCODING = re.compile(             # <<<<<<<<<<<<<<
  *     ur'^(<\?xml[^>]+)\s+encoding\s*=\s*["\'][^"\']*["\'](\s*\?>|)', re.U)
  * 
  */
-  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_re, __pyx_n_s_compile); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 654, __pyx_L1_error)
+  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_re, __pyx_n_s_compile); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 649, __pyx_L1_error)
   __Pyx_GOTREF(__pyx_t_1);
 
-  /* "src/lxml/apihelpers.pxi":655
+  /* "src/lxml/apihelpers.pxi":650
  * 
  * 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_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_re, __pyx_n_s_U); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 655, __pyx_L1_error)
+  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_re, __pyx_n_s_U); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 650, __pyx_L1_error)
   __Pyx_GOTREF(__pyx_t_7);
 
-  /* "src/lxml/apihelpers.pxi":654
+  /* "src/lxml/apihelpers.pxi":649
  *     return attributes
  * 
  * cdef object __RE_XML_ENCODING = re.compile(             # <<<<<<<<<<<<<<
  *     ur'^(<\?xml[^>]+)\s+encoding\s*=\s*["\'][^"\']*["\'](\s*\?>|)', re.U)
  * 
  */
-  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 654, __pyx_L1_error)
+  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 649, __pyx_L1_error)
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_INCREF(__pyx_kp_u_xml_s_encoding_s_s_s);
   __Pyx_GIVEREF(__pyx_kp_u_xml_s_encoding_s_s_s);
@@ -247862,7 +247789,7 @@ if (!__Pyx_RefNanny) {
   __Pyx_GIVEREF(__pyx_t_7);
   PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_7);
   __pyx_t_7 = 0;
-  __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 654, __pyx_L1_error)
+  __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 649, __pyx_L1_error)
   __Pyx_GOTREF(__pyx_t_7);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
@@ -247871,28 +247798,28 @@ if (!__Pyx_RefNanny) {
   __Pyx_GIVEREF(__pyx_t_7);
   __pyx_t_7 = 0;
 
-  /* "src/lxml/apihelpers.pxi":657
+  /* "src/lxml/apihelpers.pxi":652
  *     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_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree___RE_XML_ENCODING, __pyx_n_s_sub); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 657, __pyx_L1_error)
+  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree___RE_XML_ENCODING, __pyx_n_s_sub); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 652, __pyx_L1_error)
   __Pyx_GOTREF(__pyx_t_7);
   __Pyx_XGOTREF(__pyx_v_4lxml_5etree___REPLACE_XML_ENCODING);
   __Pyx_DECREF_SET(__pyx_v_4lxml_5etree___REPLACE_XML_ENCODING, __pyx_t_7);
   __Pyx_GIVEREF(__pyx_t_7);
   __pyx_t_7 = 0;
 
-  /* "src/lxml/apihelpers.pxi":658
+  /* "src/lxml/apihelpers.pxi":653
  * 
  * 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_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree___RE_XML_ENCODING, __pyx_n_s_match); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 658, __pyx_L1_error)
+  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree___RE_XML_ENCODING, __pyx_n_s_match); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 653, __pyx_L1_error)
   __Pyx_GOTREF(__pyx_t_7);
   __Pyx_XGOTREF(__pyx_v_4lxml_5etree___HAS_XML_ENCODING);
   __Pyx_DECREF_SET(__pyx_v_4lxml_5etree___HAS_XML_ENCODING, __pyx_t_7);
index f99a265..e0502c0 100644 (file)
@@ -51,9 +51,8 @@ def main(args=None):
             result += '\n'
         sys.stdout.write(result)
     else:
-        f = open(options.output, 'wb')
-        f.write(result)
-        f.close()
+        with open(options.output, 'wb') as f:
+            f.write(result)
 
 def read_file(filename):
     if filename == '-':
@@ -62,9 +61,8 @@ def read_file(filename):
         raise OSError(
             "Input file %s does not exist" % filename)
     else:
-        f = open(filename, 'rb')
-        c = f.read()
-        f.close()
+        with open(filename, 'rb') as f:
+            c = f.read()
     return c
 
 body_start_re = re.compile(
index cbd3ed1..6e1d126 100644 (file)
@@ -1,3 +1,3 @@
 #ifndef LXML_VERSION_STRING
-#define LXML_VERSION_STRING "4.4.0"
+#define LXML_VERSION_STRING "4.4.1"
 #endif
diff --git a/src/lxml/tests/c14n-20/world.txt b/src/lxml/tests/c14n-20/world.txt
new file mode 100644 (file)
index 0000000..04fea06
--- /dev/null
@@ -0,0 +1 @@
+world
\ No newline at end of file
index 7e30946..fc31967 100644 (file)
@@ -9,6 +9,7 @@ test_elementtree
 
 from __future__ import absolute_import
 
+from collections import OrderedDict
 import os.path
 import unittest
 import copy
@@ -16,7 +17,6 @@ import sys
 import re
 import gc
 import operator
-import tempfile
 import textwrap
 import zlib
 import gzip
@@ -286,8 +286,8 @@ class ETreeOnlyTestCase(HelperTestCase):
     def test_attrib_order(self):
         Element = self.etree.Element
 
-        keys = ["attr%d" % i for i in range(10)]
-        values = ["TEST-%d" % i for i in range(10)]
+        keys = ["attr%d" % i for i in range(12, 4, -1)]
+        values = ["TEST-%d" % i for i in range(12, 4, -1)]
         items = list(zip(keys, values))
 
         root = Element("root")
@@ -296,19 +296,32 @@ class ETreeOnlyTestCase(HelperTestCase):
         self.assertEqual(keys, root.attrib.keys())
         self.assertEqual(values, root.attrib.values())
 
-        root2 = Element("root2", root.attrib,
-                        attr_99='TOAST-1', attr_98='TOAST-2')
-
+        attr_order = [
+            ('attr_99', 'TOAST-1'),
+            ('attr_98', 'TOAST-2'),
+        ]
+        ordered_dict_types = [OrderedDict, lambda x:x]
         if sys.version_info >= (3, 6):
-            self.assertEqual(['attr_99', 'attr_98'] + keys,
-                             root2.attrib.keys())
-            self.assertEqual(['TOAST-1', 'TOAST-2'] + values,
-                             root2.attrib.values())
+            ordered_dict_types.append(dict)
         else:
-            self.assertEqual(['attr_98', 'attr_99'] + keys,
-                             root2.attrib.keys())
-            self.assertEqual(['TOAST-2', 'TOAST-1'] + values,
-                             root2.attrib.values())
+            # Keyword arguments are not ordered in Py<3.6, and thus get sorted.
+            attr_order.sort()
+        attr_order += items
+        expected_keys = [attr[0] for attr in attr_order]
+        expected_values = [attr[1] for attr in attr_order]
+        expected_items = list(zip(expected_keys, expected_values))
+
+        for dict_type in ordered_dict_types:
+            root2 = Element("root2", dict_type(root.attrib),
+                            attr_99='TOAST-1', attr_98='TOAST-2')
+
+            try:
+                self.assertSequenceEqual(expected_keys, root2.attrib.keys())
+                self.assertSequenceEqual(expected_values, root2.attrib.values())
+                self.assertSequenceEqual(expected_items, root2.attrib.items())
+            except AssertionError as exc:
+                exc.args = ("Order of '%s': %s" % (dict_type.__name__, exc.args[0]),) + exc.args[1:]
+                raise
 
         self.assertEqual(keys, root.attrib.keys())
         self.assertEqual(values, root.attrib.values())
index fdc6698..cca25a9 100644 (file)
@@ -1 +1 @@
-4.4.0
+4.4.1